Объедините несколько информационных фреймов в один в R - PullRequest
1 голос
/ 15 апреля 2020

Работая в R. У меня есть 9 фреймов данных, которые имеют общий идентификатор, который я хочу объединить. Обычно я использовал бы inner_join только с 2 dfs, но с 9 это немного сложнее (и я не очень хорош в R). Есть предложения?

1 Ответ

0 голосов
/ 15 апреля 2020

Мы можем привести его к list, а затем использовать inner_join с reduce

library(dplyr)
library(purrr)
lst1 <- list(df1, df2, df3, ...., dfn)

Если имена объектов имеют шаблон, то есть df, за которым следуют несколько цифр, это может быть преобразовать в list проще

lst1 <- mget(ls(pattern = '^df\\d+$'))
reduce(lst1, inner_join, by = 'ID')

В base R это можно сделать с помощью merge и Reduce

Reduce(function(...) merge(..., by = 'ID'), lst1)
...