R根据列名将多个数据帧合并到单个表中

  • 本文关键字:合并 数据帧 单个表 r
  • 更新时间 :
  • 英文 :


我有一堆大的CSV,它们都包含完全相同的列,我需要将它们合并到一个CSV中,所以基本上是将每个数据帧的所有数据附加到下一个数据帧的下面。这样的

表1

75122

一个可能的解决方案,在base R:

rbind(df1, df2)
#>   Prop_ID State Pasture Soy Corn
#> 1       1    WI      20  45   75
#> 2       2    MI      10  80  122
#> 3       3    MN     152   0   15
#> 4       4    IL       0  10   99

或使用dplyr:

dplyr::bind_rows(df1, df2)

假设所有csv文件都在一个目录中,并且这些是该目录中唯一的文件,那么使用data.table的解决方案应该可以工作。

library(data.table)
setwd('<directory with your csv files>')
files  <- list.files(pattern = '.+\.csv$')
result <- rbindlist(lapply(files, fread))

list.files(...)根据模式返回一个向量,其中包含给定目录中的文件名。这里我们只要求在末尾包含.csv的文件。

fread(...)data.table的一个非常快的文件读取器。我们将此函数应用于每个文件名(lapply(files, fread)),以生成包含每个csv内容的列表。然后我们使用rbindlist(...)将它们按行组合。

最新更新