Xan*_*der 1 r dataframe rbind read.csv
我正在开发一个项目,该项目从给定文件夹中导入所有 csv 文件并将它们合并到一个文件中。我能够从文件夹中的每个文件中导入我想要的行和列,但现在需要帮助将它们全部合并到一个文件中。我不知道我最终会得到多少个文件(可能大约 120 个),所以我不想将它们一一合并。
这是我到目前为止所拥有的:
# Import All files
rowsToUse <- c(9:104,657:752)
colsToUse <- c(15,27,28,29,30,33,35)
filenames <- list.files("save", pattern="*.csv", full.names=TRUE)
for (i in seq_along(filenames)) {
assign(paste("df", i, sep = "."), read.csv(filenames[i])[!is.na(30),][rowsToUse,colsToUse])
}
# Merge into one file
for (i in seq_along(filenames)) {
df<-rbind(df.[i])
}
Run Code Online (Sandbox Code Playgroud)
代码的第一部分创建了一系列标记为 df.1、df.2 等的数据帧。我希望它们以一个名为 df 的最终数据帧结束。所有文件的结构都相同。
如果有人有额外的几分钟时间,我将非常感谢您的帮助!谢谢!
由于您已经读入了文件,您可以尝试以下操作:
do.call(rbind, mget(ls(pattern = "df")))
Run Code Online (Sandbox Code Playgroud)
本ls(pattern = df)应捕获所有“df.1”,“df.2”的,等等。希望您没有使用相同模式命名的其他事物,但是如果您这样做了,请尝试使用更严格的模式,直到命令仅列出您的data.frames。
mget()将所有这些带入一个list您可以使用的do.call(rbind, ...).