Как объединить несколько несвязанных наборов данных - PullRequest
0 голосов
/ 08 февраля 2019

В R я пытаюсь объединить 5 наборов данных, которые не имеют общего столбца.

Примером может быть объединение наборов данных mtcars, cars и iris.Как мне поступить?

Использование dplyr

full_join(mtcars, cars, iris)

возвращает ошибку, когда сообщается, что должен быть (именованный) символьный вектор.Однако у меня нет общего столбца для использования для 'by = '

library(dplyr)
full_join(mtcars, cars, iris)

Я бы хотел, чтобы все 3 набора данных были рядом, строки, в которых нет данных, будут NA.

1 Ответ

0 голосов
/ 08 февраля 2019

Если мы хотим cbind, то используем cbind.fill

library(rowr)
cbind.fill(mtcars, cars, iris, fill = NA)

Размеры набора данных не совпадают, fill = NA заполнит те наборы данных, у которых меньше строк, с NA вконец


Или, используя tidyverse, сохраните наборы данных в list, добавьте имена строк в виде столбца, просматривая list и reduce в одном наборе данных, объединяющем by имя строки

library(tidyverse)
list(mtcars, cars, iris) %>%
     map(~ as_tibble(.x) %>%
              rownames_to_column) %>% 
     reduce(full_join, by = 'rowname')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...