使用动态创建的角色对象引用现有数据框

时间:2014-10-03 13:10:51

标签: r merge assign

这感觉这应该有一个简单的解决方案,但它让我望而却步。

我有一组现有的数据框,称为set1,set2和set3。我想将它们中的每一个 - 分别 - 与另一个数据框合并,如下所示:

a <- merge(bigdata, set1, by = keyID)
b <- merge(bigdata, set2, by = keyID)
c <- merge(bigdata, set3, by = keyID)
...

我想动态引用现有的'套'(在循环中),所以我创建了这个对象:

nam <- paste('set', i, sep = '')

当然,如果我这样做:

> nam

我明白了:

> "set1"

但我想使用“set1”引用来表示合并代码中的apprpopriate数据框,而不仅仅是类“chr”的对象。任何帮助一如既往地受到赞赏。

1 个答案:

答案 0 :(得分:1)

您可以使用get作为Juba建议,或者您输入一个列表。

 bigset<-list(set1=set1,set2=set2, [etc)
 abc_list <- sapply(1:length(bigset) function(j) merge(bigdata,bigset[[j]])

你完成了。 或者,不创建bigset

setnames<-ls(pattern='set[0-9]{1,})
abc_list<-sapply(1:length(setnames), function(j) merge(bigdata,get(setnames[j]))