【发布时间】:2014-09-26 08:36:28
【问题描述】:
到目前为止,我已经多次遇到过这个问题,这次我渴望得到一个有效的解决方案。根本问题是我想使用paste 函数循环遍历变量列表。
dat <- read.csv("some file", header=TRUE)
list.R <- c("IC","IG","DM","IM","IN","EN","RM")
for (RO in list.R){
paste("dat$",RO,"_I", sep="")[
paste("dat$",RO,"_I", sep="") ==
"Strongly disagree"] <- 1
}
我将变量的名称粘贴在一起,但这给了我一个带引号的字符串。我已经尝试了以下方法,但到目前为止没有任何效果:
eval(parse(text=paste("dat$",RO,"_I", sep="")))
或
get(paste("dat$",RO,"_I", sep=""))
您知道如何解决这个问题以使循环正常工作吗? 非常感谢您的帮助:)
(我知道在这种情况下我也可以使用as.numeric(levels(dat$IC_I))[dat$IC_I]
但是关卡的顺序是错误的)
【问题讨论】:
-
正如下面的答案所暗示的,不要强制使用特定的方法。找到实现解决方案的最佳方式。