我想知道如何使用粘贴创建一个变量名(已经存在的变量),然后访问这个变量。
例子:
var<-c("A","B","C")
for (i in 1:3){
paste0("var")[i]
}
注意:假设我需要用来paste0
创建变量名(我正在处理 data.frames 并paste0
用于为不同的列创建变量)
谢谢!
编辑:
好的,这是更大的图景:我有两个数据框:smallDF
和bigDF
. 我想将数据从 bigDF 复制到 smallDF。匹配是用user_name
.
user <- c("userA","userB","userC")
variables<-c("user_age","user_city","user_street")
for (t in 1:length(variables)){
for (j in 1:length(user)){
x<-paste0("bigDF$",variables[t])
y<-paste0("smallDF$",variables[t])
tmp<-unique(x[which(bigDF$user_name==user[j])])[1] # unique will only yield one entry
replace<-c(as.character(rep(tmp,length(y[which(smallDF$user_name==user[j])]))))
y[which(smallDF$user_name==user[j])]<-replace
}
}
上面的代码不起作用。但是,当我避免第一个 for 循环并用各自的变量名(bigDF$user_age 等)替换 x 和 y 时,一切正常。这就是为什么我认为必须有一种简单的方法来使用外部 for 循环动态创建这些变量名。谢谢大家!