将多个文件合并到一个大数据表中。文件中的列名不匹配

时间:2019-06-24 16:25:19

标签: r dataframe merge dataset

我的计算机上的一个文件夹中有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”,可以将它们保留为空格。

1 个答案:

答案 0 :(得分:2)

我们可以使用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))