Добавление нескольких фреймов данных на основе 2 уникальных идентификаторов - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть десять фреймов данных, и я хотел бы добавить их на основе id и pnum.Каков наилучший способ сделать это?Спасибо

df1 - пример df1

id pnum v1  v2  v3... v144
111 1   1    0   0 ... 0  
111 2   1    1   0  ...0
121 1   1    1   0  ...0
123 2   1    1   0  ...0
123 1   1    1   0  ...0



df3 -example of df3

id pnum v1  v2  v3... v144
111 1   0    0   0 ... 0  
111 2   0    0   0  ...1
121 1   0    0   0  ...1
123 2   0    0   0  ...0
123 1   0    0   0  ...1

...

df10 -example of df10

id pnum v1  v2  v3... v144
111 1   0    0   0 ... 0  
111 2   0    1   0  ...1
121 1   0    0   1  ...1
123 2   0    1   0  ...0
123 1   0    0   0  ...1

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Рассмотрим rbind в списке фреймов данных и затем запустите aggregate

df_list <- list(df1, df2, df3, ..., df10)

master_df <- do.call(rbind, df_list)

agg_df <- aggregate(. ~ ID + pnum, master_df, sum)
0 голосов
/ 21 ноября 2018

Мы можем получить наборы данных в list с помощью mget, использовать bind_rows, чтобы связать строки наборов данных с одним набором данных, сгруппированных по 'id', 'pnum', суммировать все столбцы (summarise_all) вернуть sum для каждой группы

library(dplyr)
mget(paste0('df', 1:10)) %>%
   bind_rows %>%
   group_by(id, pnum) %>%
   summarise_all(sum)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...