R 3.0.3 rbind多个csv文件

use*_*565 5 csv r rbind

R 3.0.3:我有40个csv文件,所有结构与我想要的结果相同,rbind因此我可以计算一列的平均值.

我搜索了:

  • 这个网站
  • R in a Nutshell
  • R_Intro 来源
  • ?rbind Help 在RStudio

我找不到答案.

有什么建议/指针吗?

use*_*650 12

使用此处的答案[ 导入多个文件并将其编入索引 ]

列出扩展名为.csv的文件 - 这假定工作目录中唯一的.csv文件是您要读取的文件

files  <- list.files(pattern = '\\.csv')
Run Code Online (Sandbox Code Playgroud)

将文件读入列表 - 是否有标题?

tables <- lapply(files, read.csv, header = TRUE)
Run Code Online (Sandbox Code Playgroud)

rbind文件

combined.df <- do.call(rbind , tables)
Run Code Online (Sandbox Code Playgroud)

然后,您可以找到平均值 - 查找哪些列是数字

s <- sapply(combined.df, is.numeric)
Run Code Online (Sandbox Code Playgroud)

找到数值变量的平均值

colMeans(combined.df[s])
Run Code Online (Sandbox Code Playgroud)

  • @ChetanArvindPatil;在读入阶段,您可以添加带有`tables &lt;- lapply(files, function(x) cbind(read.csv(x, header = TRUE), id=x))`的文件名,或带有`的数字表 &lt;- lapply(seq_along(files), function(x) cbind(read.csv(files[x], header = TRUE), id=x))`; 或者在列表中使用`data.table`,如上面的答案:`names(tables) &lt;- files ; data.table::rbindlist(tables, idcol=TRUE)` (2认同)