如何在 R 数据框中将每列的值四舍五入到小数点后两位,即使某些列是分类的?
要在 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 high second 0.44421128 -1.64570047 2 high first 1.43670027 -0.88397636 3 low second -1.18341254 1.60293111 4 high first -0.62283226 -0.19380057 5 medium first 1.00604412 0.25331793 6 low second 1.40551557 -0.18606767 7 high second -2.35957053 0.67014007 8 medium first 0.80687847 -1.45673170 9 high first -0.54953362 0.56315219 10 medium second -0.04559434 0.21357310 11 medium second -0.31043620 -0.53737110 12 low first 1.01480003 -0.21291348 13 low second 0.93591125 0.31726701 14 medium second 0.15091510 -0.44046938 15 low first -0.12028441 -1.04923163 16 medium second 3.26870341 -0.12206452 17 low first 0.43235968 -0.30970690 18 high first 0.30046505 -0.50644433 19 high first -1.93352142 -1.06623806 20 medium first 1.00902072 0.09869907 21 medium second -0.75597488 0.03825807 22 high second -0.45890036 -1.58441677 23 high second -4.05130949 -0.51986084 24 medium second -0.15283662 0.30010858 25 high second -0.97502595 0.01697664
如果某些列是分类的,则将每列中的每个值四舍五入到小数点后两位
使用 plyr 包中的 numcolwise 函数将数据框 df 中数值列中的每个值四舍五入到小数点后两位,即使某些列是分类的:
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,2)(df)
输出
DV1 DV2 1 0.44 -1.65 2 1.44 -0.88 3 -1.18 1.60 4 -0.62 -0.19 5 1.01 0.25 6 1.41 -0.19 7 -2.36 0.67 8 0.81 -1.46 9 -0.55 0.56 10 -0.05 0.21 11 -0.31 -0.54 12 1.01 -0.21 13 0.94 0.32 14 0.15 -0.44 15 -0.12 -1.05 16 3.27 -0.12 17 0.43 -0.31 18 0.30 -0.51 19 -1.93 -1.07 20 1.01 0.10 21 -0.76 0.04 22 -0.46 -1.58 23 -4.05 -0.52 24 -0.15 0.30 25 -0.98 0.02
广告