【问题标题】:R - loop through multiple dataframes from a list of namesR - 从名称列表中遍历多个数据帧
【发布时间】:2014-08-21 11:34:36
【问题描述】:

我有许多大型 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,我该如何纠正这个问题?这也是最好的方法吗?

【问题讨论】:

  • 你的 data.frames 应该在一个列表中。

标签: r loops


【解决方案1】:

或者

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

如果不想创建矢量MyDFs

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

【讨论】:

    【解决方案2】:

    在您自己的代码中,只需将 print(nrow(i)) 替换为 print(nrow(get(i))),因为 i 是:chr "DF1" 等。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2015-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      • 2020-02-09
      相关资源
      最近更新 更多