如果 R 数据框中的某些列属于分类,如何找到列中每个值的指数?

r programmingserver side programmingprogramming更新于 2025/4/7 14:07:17

如果 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

相关文章