Слияние списка data.frames с purrr (уменьшить / уменьшить2) - PullRequest
0 голосов
/ 12 февраля 2020

Это мои данные:

list_of_data <- list(mtcars[1:26,], mtcars[4:22,], mtcars[3:15,])

Я хочу объединить все фреймы данных по их именам строк.

Слияние большого количества фреймов данных.

Я знаю, что Reduce очень удобен для решения подобных проблем, но я не могу войти в мой purrr рабочий процесс. Кто-нибудь может мне помочь?

Я даже не уверен, что reduce или reduce2 могут подойти для его работы. Это была моя попытка, но она не работает:

list_of_data %>%
    map(~select(.x, c(cyl, wt))) %>%
    reduce2(~merge(.x, .y,  all=TRUE))

1 Ответ

1 голос
/ 12 февраля 2020

Если я правильно понимаю, каковы ваши намерения:

library(tibble)
library(purrr)
library(dplyr)

list_of_data %>% 
  map(~select(.x, cyl, wt)) %>% 
  map(rownames_to_column) %>% 
  reduce(full_join, by = "rowname")

Мы можем использовать dplyr::full_join с purrr::reduce для объединения нескольких фреймов данных. Но чтобы иметь возможность слияния по именам строк, сначала нам нужно записать их в столбец. tibble::rownames_to_column делает это. По умолчанию столбец называется «имя строки».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...