R - 从名称列表中循环遍历多个数据帧

时间:2014-08-21 11:34:36

标签: r loops

我有很多大型DF,我想循环使用它们。我没有把它们绑定在一起制作一个大清单,而是认为我应该用它们的名字制作一个简单的矢量并看看它们,但我怎么能这样做呢?

例如我有:

DF1 <- data.frame(c("a", "b", "c"),c(TRUE, FALSE, TRUE))
DF2 <- data.frame(c("aa", "bb", "cc"),c(FALSE, FALSE, TRUE))
DF3 <- data.frame(c("aaa", "bbb", "ccc"),c(TRUE, FALSE, FALSE))

MyDFs <- c("DF1", "DF2", "DF3")

for (i in MyDFs) {
    print(nrow(i))
}

但for循环不起作用,因为R不会将它们识别为DF,我该如何纠正?这也是最好的方法吗?

2 个答案:

答案 0 :(得分:1)

或者

 sapply(mget(MyDFs),nrow)
 #DF1 DF2 DF3 
 # 3   3   3 

如果您不想创建向量MyDFs

 sapply(mget(ls(pattern="DF")), nrow) #should also work

答案 1 :(得分:0)

在您自己的代码中,只需将print(nrow(i))替换为print(nrow(get(i))),因为我是:chr&#34; DF1&#34;等

for (i in MyDFs) {
     print(nrow(get(i)))
}
[1] 3
[1] 3
[1] 3