如果 R 数据框中某些列属于分类数据,如何对列中的每个值进行舍入?

r programmingserver side programmingprogramming更新于 2025/6/24 6:37:17

如果 R 数据框中某些列属于分类数据,如何对列中的每个值进行舍入,我们可以按照以下步骤操作 −

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

  • 然后,使用 plyr 包中的 numcolwise 函数对列中的每个值进行舍入(如果某些列属于分类数据)。

示例

创建数据框

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

Level<-sample(c("low","medium","high"),25,replace=TRUE)
Group<-sample(c("first","second"),25,replace=TRUE)
DV1<-rnorm(25)
DV2<-rnorm(25)
df<-data.frame(Level,Group,DV1,DV2)
df

输出

执行时,上述脚本将生成以下输出(由于随机化,此输出将因您的系统而异) −

   Level   Group    DV1         DV2
1  low    first   0.3113086 -0.560410192
2  high   second  1.2462502 -0.839353354
3  high   second -0.1069003  0.876603377
4  low    second  0.7132453  0.444083125
5  high   second -0.9718300  0.719396980
6  medium first  -1.1686395  0.692503766
7  high   first   0.2996904  1.549099366
8  medium first   0.1843041 -0.623725508
9  medium first  -0.2806531  0.265089090
10 medium second -0.1707617  0.783538873
11 medium second -0.3580571  0.367009599
12 low    second -0.7904927 -0.363554432
13 high   second  1.2020259 -0.990149369
14 medium first   0.1223149 -0.096059087
15 high   second -0.2941084 -0.584607516
16 medium first   0.8305360 -0.521546585
17 high   first   1.3346562 -0.234318326
18 medium first  -0.6467870 -0.002709633
19 medium second  0.2400778 -0.969352846
20 low    first   0.4702012  0.168694928
21 medium first  -0.5836102  0.145309996
22 low    second  1.0728229  0.641423060
23 low    first  -0.2079424 -0.603290667
24 medium first   0.6148493 -0.919263451
25 high   second -0.1642258  0.065443836

如果某些列属于分类,则对列中的每个值进行舍入

如果数据框 df 中的某些列属于分类,则使用 plyr 包中的 numcolwise 函数对数值列中的每个值进行舍入 −

Level<-sample(c("low","medium","high"),25,replace=TRUE)
Group<-sample(c("first","second"),25,replace=TRUE)
DV1<-rnorm(25)
DV2<-rnorm(25)
df<-data.frame(Level,Group,DV1,DV2)
library(plyr)
numcolwise(round)(df)

输出

   DV1 DV2
1   0 -1
2   1 -1
3   0  1
4   1  0
5  -1  1
6  -1  1
7   0  2
8   0 -1
9   0  0
10  0  1
11  0  0
12 -1  0
13  1 -1
14  0  0
15  0 -1
16  1 -1
17  1  0
18 -1  0
19  0 -1
20  0  0
21 -1  0
22  1  1
23  0 -1
24  1 -1
25  0  0

相关文章