【问题标题】:Looping through identically named datasets循环遍历同名数据集
【发布时间】:2015-04-20 03:39:37
【问题描述】:

我想循环并创建几乎相同命名的数据集。我有数据集 df.1df.2 开始,但以下命令一直失败:

for (x in 1:2) {
        df.x
        }

我要做的是创建一个摊销表。使用for 循环,这似乎相对容易,但似乎每个人都建议在索引数据帧时使用表。有人对我如何工作有任何想法吗?我对lapply 或任何list 函数非常陌生。

【问题讨论】:

    标签: r loops lapply


    【解决方案1】:

    您最好手动或通过ls() 抓取您的工作区以找到data.frames,将它们放在一个列表中并从那里开始工作。

    x <- 1:5
    y <- letters[x]
    z <- c(T, T, T, T, F)
    
    # put the elements into a list
    your.list <- lapply(ls(), FUN = get)
    
    # calculate length of each list element
    lapply(your.list, FUN = length)
    
    # anonymous function
    lapply(your.list, FUN = function(bla) {
        if (is.numeric(bla)) {
            return(sum(bla))
        } else {
            return(NA)
        }
    })
    

    不用说,您不仅限于矢量,这适用于任何对象。

    【讨论】:

      【解决方案2】:

      这有点具体到 Roman Luštrik 的回答。如果有帮助,请选择他。

      df.1 <- data.frame(var = c(1,2))
      df.2 <- data.frame(var = c(2,3))
      
      for(i in 1:2) {
          data <- get(paste("df.",i,sep=""))
          print(data)
      }
        var
      1   1
      2   2
        var
      1   2
      2   3
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-31
        • 2017-06-28
        • 1970-01-01
        • 1970-01-01
        • 2015-03-07
        • 1970-01-01
        • 2023-04-10
        相关资源
        最近更新 更多