将数据帧组合到列表中

时间:2014-11-04 08:51:40

标签: r list dataframe

我正在尝试在列表中存储多个数据帧。但是,在某些时候,数据帧最终会转换为列表,因此我最终会得到一个列表列表。

我真正想做的就是将我的所有数据帧保持在某种结构中。

这是失败的代码:

all_dframes <- list() # initialise a list that will hold a dataframe as each item
for(file in filelist){ # load each file
    dframe <- read.csv(file) # read CSV file
    all_dframes[length(all_dframes)+1] <- dframe # add to the list
}

如果我现在打电话给class(all_dframes[1]),我会收到'list',而如果我打电话给class(dframe),我会收到'data.frame'!

2 个答案:

答案 0 :(得分:4)

当然,all_dframes[1]的班级是list,因为all_dframes是一个列表。函数[返回列表的子集。在此示例中,返回列表的长度为1。如果要提取数据框,则必须使用[[,即all_dframes[[1]]

答案 1 :(得分:1)

我可以建议:

library(data.table)
all_dframes <- vector("list",length(filelist))
for(i in 1:length(filelist)){ # load each file
       all_dframes[[i]]<-fread(filelist[i])
}

这是你需要的吗?