【发布时间】:2013-07-26 02:46:23
【问题描述】:
我有一个结构相同的 csv 文件目录。我正在尝试将它们全部加载到单个 data.frame 中。目前我使用lapply() 和read.csv() 来获取data.frames 列表,我正在寻找一种优雅的方法来将此列表转换为避免显式循环的data.frame。
我lapply(list.of.file.names,read.csv)的结果可以近似为这个结构:
list.of.dfs <- list(data.frame(A=sample(seq(from = 1, to = 10), size = 5),
B=sample(seq(from = 1, to = 10), size = 5)),
data.frame(A=sample(seq(from = 1, to = 10), size = 5),
B=sample(seq(from = 1, to = 10), size = 5)),
data.frame(A=sample(seq(from = 1, to = 10), size = 5),
B=sample(seq(from = 1, to = 10), size = 5))
)
以下行的优雅版本适用于任意长度的列表:
one.data.frame <- rbind(list.of.dfs[[1]],list.of.dfs[[2]],list.of.dfs[[3]])
我可以使用 for 循环来做到这一点,但是有基于向量的解决方案吗?
【问题讨论】:
-
do.call(rbind, list.of.dfs) -
是的,一旦你知道
do.call做了什么,这会非常简单。 -
是的,这是重复的。不知怎的,我没有找到更早的那个。笨拙地投票结束我自己的问题。
标签: r