如果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  low    second   6    63
2  low    first   15     6
3  low    first   49    75
4  medium second  29    86
5  low    first   44    94
6  high   second   5    27
7  low    second  21     9
8  low    second  30    35
9  low    first   24    61
10 low    second  33    31
11 low    second  25    88
12 high   second  38    55
13 low    second  43    33
14 medium first   12    70
15 low    second   2    62
16 high   second  40    82
17 low    first   13    57
18 low    second  16     3
19 medium first   36    98
20 low    second  50    36
21 high   first   19    54
22 low    first    9    81
23 low    second   1    66
24 medium second  47    24
25 medium second  28    59

如果某些列是分类变量,则查找指数

使用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(exp)(df)

输出

       Score      Demand
1  1.171914e+16 1.112864e+36
2  4.034288e+02 7.200490e+10
3  9.496119e+19 9.253782e+29
4  3.185593e+16 1.171914e+16
5  1.957296e+11 8.223013e+36
6  9.744803e+09 5.184706e+21
7  6.565997e+07 4.424134e+05
8  4.424134e+05 1.957296e+11
9  2.718282e+00 2.581313e+20
10 3.269017e+06 1.041376e+23
11 7.896296e+13 5.459815e+01
12 2.648912e+10 1.506097e+35
13 1.446257e+12 2.353853e+17
14 4.851652e+08 2.904885e+13
15 2.980958e+03 3.269017e+06
16 3.493427e+19 1.739275e+18
17 1.784823e+08 7.016736e+20
18 1.096633e+03 6.076030e+37
19 1.285160e+19 1.338335e+42
20 2.146436e+14 4.851652e+08
21 1.627548e+05 4.923458e+41
22 3.584913e+09 1.811239e+41
23 2.581313e+20 2.688117e+43
24 5.459815e+01 2.202647e+04
25 5.184706e+21 2.293783e+27

更新于:2021年11月10日

186 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告