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

r programmingserver side programmingprogramming更新于 2025/4/7 11:37:17

如果 R 数据框中的某些列属于分类,要找到每个值的 log10,我们可以按照以下步骤操作 −

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

  • 然后,使用 plyr 包中的 numcolwise 函数找到 log10(如果某些列属于分类)。

示例

创建数据框

让我们创建一个数据框,如下所示 −

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  30      9
2  high   first   42     48
3  medium first   14     88
4  high   second  27     63
5  high   first   37     97
6  medium first   38     39
7  high   second  13     18
8  high   first   16     14
9  low    second  40     90
10 medium first   25     53
11 low    second  48     78
12 high   second  28     64
13 low    first   22     32
14 medium first    1     31
15 high   first    2     21
16 low    second  17     26
17 high   first    5     41
18 medium first   49     85
19 low    second  45     29
20 low    first    9     49
21 medium first   31     44
22 medium first   29     46
23 high   second  10     36
24 low    second  21     33
25 low    second  35     40

如果某些列是分类的,则查找 log10

使用 plyr 包中的 numcolwise 函数查找数据框 df 中数值列中每个值的 log10 −

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(log10)(df)

输出

     Score     Demand
1  1.2552725 1.851258
2  1.3424227 1.477121
3  1.6334685 1.041393
4  1.6020600 1.986772
5  1.6532125 1.944483
6  1.5910646 1.934498
7  1.5440680 1.897627
8  1.2787536 1.977724
9  1.4913617 1.857332
10 1.5051500 0.602060
11 1.5682017 1.505150
12 1.3979400 1.230449
13 0.8450980 1.681241
14 0.6989700 1.748188
15 1.6720979 0.903090
16 1.4623980 1.863323
17 1.0000000 1.799341
18 1.1139434 1.380211
19 1.5563025 1.982271
20 0.9542425 0.698970
21 0.7781513 1.633468
22 1.0413927 1.707570
23 1.5797836 1.792392
24 1.6901961 1.556303
25 1.6989700 1.806180

相关文章