[使用R 3.2.2]
我试图使用循环修改数据框中包含的几个变量的值。具体来说,我想将11个变量的所有值除以10.
首先,我尝试为一个变量(bio1)执行此操作:
dataframe0$bio1/10
此命令显示我想在控制台中获取的结果,但不会在数据框中修改它。
在尝试构建循环时,我想出了一些选项:
首先,我创建了一个包含所有变量的向量,然后构建了循环:
vlist <- c("bio1", "bio2", "bio3", "bio4", "bio5", "bio6", "bio7", "bio8", "bio9", "bio10", "bio11")
for (i in vlist) {
dataframe0$i/10
}
由于前面的代码可能会替换'“..”'以及循环内部的字符串('i'),因此它不起作用,我尝试使用其他循环:
for(var in paste0("bio", 1:11)) {
dataframe0$var/10
}
我应该怎么做才能执行它并将修改保存在数据框中?提前谢谢!
答案 0 :(得分:1)
最简单的解决方案可能是
dataframe0[,vlist] <- dataframe0[,vlist] / 10
此循环不是必需的。
示例(为方便起见,使用我自己的一些数据):
> head(websurvey[,c("age", "dur")])
age dur
17514 68 320
15091 70 503
18152 30 276
7558 39 311
22594 47 161
5108 56 284
> websurvey_test[,c("age", "dur")] <- websurvey[,c("age", "dur")]/10
> head(websurvey_test[,c("age", "dur")])
age dur
17514 6.8 32.0
15091 7.0 50.3
18152 3.0 27.6
7558 3.9 31.1
22594 4.7 16.1
5108 5.6 28.4