仅当该变量名称存在时,我希望在R中合并表。同样,我用一个可能存在或不存在的各种表名制作了一个变量。然后添加“ for”和“ if”循环以合并表。所有表(如果存在)都有一个公用的“名称”列。我输入的代码如下:
Designation.Attrition1<- data.frame(names)
x<- c("despivot2020new", "despivot2019new", "despivot2018new", "despivot2017new")
for( i in 1: length(x)){if (exists(x[i])){Designation.Attrition1<- merge(Designation.Attrition1, x[i] , by = "names")}}
但是,我收到的错误是“ fix.by(by.y,y)中的错误:'by'必须指定唯一有效的列”。
错误的原因之一,可能是合并功能未能将x的元素视为变量名。
答案 0 :(得分:0)
x[i]
仍然是字符串,而不是数据帧。合并之前,请先尝试get
数据。
for( i in seq_along(x)) {
if (exists(x[i])) {
Designation.Attrition1 <- merge(Designation.Attrition1,get(x[i]),by = 'names')
}
})