【发布时间】:2014-11-04 17:47:37
【问题描述】:
我正在尝试将多个数据帧存储在一个列表中。但是,在某些时候,数据框最终会转换为列表,因此我最终会得到一个列表列表。
我真正想做的就是将我所有的数据框以某种结构放在一起。
这是失败的代码:
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]),我会得到“列表”,而如果我调用 class(dframe),我会得到“data.frame”!
【问题讨论】:
-
你可以做到
files <- list.files(pattern=".csv"); lapply(files, function(x) read.csv(x, header=TRUE)) -
或
library(data.table); files <- lapply(list.files(pattern=".csv"), fread)