我已经遇到了这个问题好几次了,这一次我渴望得到一个有效的解决方案。根本问题是我想用 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]
但级别的顺序是错误的)