循环使用同名数据集

时间:2015-04-20 03:39:38

标签: r loops lapply

我想循环并创建几乎无名的数据集。我开始使用数据集df.1df.2,并且以下命令会一直失败:

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

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

2 个答案:

答案 0 :(得分: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)
    }
})

毋庸置疑,您不仅限于矢量,这适用于任何对象。

答案 1 :(得分:0)

这对RomanLuš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