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

标签 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”,可以保留为空白。

最佳答案

我们可以使用bind_rows

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

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

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

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

关于r - 将多个文件合并到一张大数据表中。文件中的列名称不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56740580/

相关文章:

r - 我如何对 data.table 中特定列的不同子集取平均值?

git - 无法自动 merge Git pull 请求::无冲突

r - 如何在数据框的特定命名列上使用 `assign()` 或 `get()`?

python - 如果 Python Pandas 中的列包含任何特殊字符,则重复行

R session 因 renv 0.17.2 卡住

python - 操作从 dict(tuple-float) 创建的 DataFrame

python - 使用Python格式化Excel中的单元格

python - 尝试使用一个数据帧的元素来完成 2 个数据帧的最小值

r - 使用 R 包 : readxl and writing to a csv 按列合并多个 .xlsx 文件时出现标题前有垃圾文本的问题

r - 在ggplot2中绘制欧元符号€?