与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
}我应该怎么做才能执行它并将修改保存在数据帧中?提前感谢!
发布于 2017-02-08 13:20:36
最简单的解决办法可能是
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.4https://stackoverflow.com/questions/42113627
复制相似问题