如果R数据框中某些列是分类列,如何标准化这些列?


为了标准化R数据框中某些列是分类列的情况,我们可以按照以下步骤进行:

  • 首先,创建一个数据框。

  • 然后,使用plyr包中的numcolwise函数来标准化某些列是分类列的情况下的列。

示例

创建数据框

让我们创建一个如下所示的数据框:

Level<-sample(c("low","medium","high"),25,replace=TRUE)
Group<-sample(c("first","second"),25,replace=TRUE)
Score<-sample(1:50,25)
Demand<-sample(1:100,25)
df<-data.frame(Level,Group,Score,Demand)
df

输出

执行上述脚本后,将生成以下输出(由于随机化,此输出将在您的系统上有所不同):

   Level  Group   Score Demand
1  high   second  37    31
2  medium second  43    89
3  medium second  31    50
4  medium first   16    60
5  low    first   23    29
6  low    second   3    26
7  medium first   26    55
8  low    first    9     9
9  high   second  14     3
10 medium first   33    36
11 low    second  15    34
12 medium first   19    85
13 medium second  41    71
14 medium second  50    78
15 low    second  36    69
16 medium second  17    49
17 high   second  38    76
18 high   first    6    99
19 low    first   35    91
20 medium first   39    12
21 low    first   47    62
22 medium second  45    59
23 medium first   44    64
24 medium second  21    25
25 high   second  11    57

查找某些列是分类列时的标准化值

使用plyr包中的numcolwise函数来标准化数据框df中的数值列:

Level<-sample(c("low","medium","high"),25,replace=TRUE)
Group<-sample(c("first","second"),25,replace=TRUE)
Score<sample(1:50,25)
Demand<-sample(1:100,25)
df<-data.frame(Level,Group,Score,Demand)
library(plyr)
numcolwise(scale)(df)

输出

      Score       Demand
1  -0.02029767  0.99612442
2  -0.81770624  0.46627101
3   0.41465246  0.61765770
4  -0.38275611 -1.76668267
5   1.42953609  1.37459115
6   1.06707765  1.03397109
7   0.63212752 -1.31252260
8  -0.60023118 -0.36635579
9   0.99458596  0.73119771
10 -0.16528105  0.69335104
11 -1.25265637 -0.70697584
12  0.84960258 -0.85836253
13 -0.52773949 -0.10142908
14  0.19717739 -1.69098933
15 -1.10767299  0.84473773
16 -1.47013143 -1.27467593
17  0.55963583  1.14751111
18 -1.83258988 -1.50175597
19  1.35704440 -0.17712243
20 -0.74521455  0.54196435
21 -0.67272287 -0.06358241
22  1.28455271 -0.25281577
23  0.48714414  0.76904439
24  1.50202778 -0.59343583
25 -1.18016468  1.45028449

更新时间: 2021年11月10日

147 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告