【问题标题】:Merge multiple files into one big data table. Column names do not match in the files将多个文件合并到一个大数据表中。文件中的列名不匹配
【发布时间】:2019-11-06 11:56:06
【问题描述】:

我的计算机上的一个文件夹中有 50 多个 csv 文件,我想将它们合并到 1 个巨型数据表中。下面是我的 50 张桌子中的 3 张(一张、两张和三张)的外观示例,以及我希望我的最终桌子的外观(一起)。

one <- data.frame("County" =  c("Autauga", "Barbour", "Bibb"), "AAAA" = c(1, 
1, 1), "BBBB" = c(2, 2, 2))

two <- data.frame("County" =  c("Cape May", "Mercer", "Bergen"), "BBBB" = 
c(1, 1, 1), "CCCC" = c(2, 2, 2), "DDDD" = c(1, 2 ,3))

three <- data.frame("County" = c("Lincoln", "Jackson", "Pike"), "CCCC" = 
c(1, 1, 1))

together <- data.frame("County" = c("Autauga", "Barbour", "Bibb", "Cape 
May", "Mercer", "Bergen", "Lincoln", "Jackson", "Pike"), "AAAA" = c(1, 1, 1, 
NA, NA, NA, NA, NA, NA), "BBBB" = c(2, 2, 2, 1, 1, 1, NA, NA, NA), "CCCC" = 
c(NA, NA, NA, 2, 2, 2, 1, 1, 1), "DDDD" = c(NA, NA, NA, 1, 2, 3, NA, NA, 
NA))

如果有人能帮我解决这个问题,那就太好了!此外,空格不必是“NA”,它们可以保留为空格。

【问题讨论】:

    标签: r dataframe merge dataset


    【解决方案1】:

    我们可以使用bind_rows

    library(tidyverse)
    bind_rows(one, two, three)
    

    如果有很多数据集,请将其放在 list 中,然后使用 data.table 中的 bind_rows/rbindlist

    不要在全局环境中创建多个data.table/data.frame对象,而是将其读入list,然后使用rbindlist

    library(data.table)
    rbindlist(lapply(files, fread))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      • 2016-10-27
      • 1970-01-01
      相关资源
      最近更新 更多