Составление списка из двух фреймов данных и размещение этого списка в столбце - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть два кадра данных.X и YX имеют 2 столбца id и status, а Y df имеет много столбцов, но для этой проблемы мне нужны только два столбца.DF X

id status 
131 y
127 y
126 y
125 y
124 y
122 y
11  y

DF Y

n_id       id 
867        131       
220        127       
212        127       
198        127       
220        126       
212        126        
198        126        
188        125        
187        125        
166        125        
165        125        
157        125 

Исключительный вывод должен быть в кадре данных

id status n_id
131 y     867
127 y     220,212,198
126 y     220,212,198
125 y     188,187,166,165,157
124 y     NA
122 y     NA
11  y     NA

1 Ответ

1 голос
/ 24 апреля 2019

Пакет dplyr можно использовать для группировки поля id в объекте df_y, свертывания значений n_id в строку и затем присоединения его к объекту df_x.

library(dplyr)

df_x <- data.frame(id = c(131,127,126,125,124,122,11), status = "y")

df_y <- data.frame(n_id = c(867,220,212,198,220,212, 198,188,187,166,165,157),
                   id = c(131, 127,127,127,126,126,126,125,125,125,125,125))


df_y <- df_y %>%
  group_by(id) %>% 
  summarize(list_col = paste(n_id, collapse=", "))

df_x <- df_x %>%
  left_join(df_y, by = 'id')

df_x
#>    id status                list_col
#> 1 131      y                     867
#> 2 127      y           220, 212, 198
#> 3 126      y           220, 212, 198
#> 4 125      y 188, 187, 166, 165, 157
#> 5 124      y                    <NA>
#> 6 122      y                    <NA>
#> 7  11      y                    <NA>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...