Объедините несколько файлов в одну большую таблицу данных.Имена столбцов в файлах не совпадают - PullRequest
2 голосов
/ 24 июня 2019

У меня есть 50+ файлов CSV в папке на моем компьютере, которые я хотел бы объединить в одну гигантскую таблицу данных.Ниже приведен пример того, как могут выглядеть 3 из 50 моих таблиц (один, два и три) и как я хотел бы, чтобы мой финальный стол выглядел (вместе).

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 Ответ

2 голосов
/ 24 июня 2019

Мы можем использовать bind_rows

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

Если имеется много наборов данных, поместите его в list, а затем используйте bind_rows/rbindlist из data.table

Вместо создания нескольких объектов data.table / data.frame в глобальном окружении, прочитайте его в list и затем используйте rbindlist

library(data.table)
rbindlist(lapply(files, fread))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...