Соедините два набора данных в R - PullRequest
0 голосов
/ 07 августа 2020

У меня есть два набора данных, один вложенный, и я хочу присоединить к нему другой набор дат. Проблема в том, что некоторые данные отсутствуют в другом наборе дат. Для меня это не имеет значения, так как я хочу добавить все данные из набора данных B в A при некоторых условиях.


library(tidyverse)
mtcars_new <- mtcars %>% group_by (cyl, hp, am) %>% nest()
mtcars_nulls <- structure(list(mpg = c(23.79589895, 17.60093415, 23.39907235, 
                                       2.079715264, 14.07374042, 17.09516043, 14.30981259, 10.42843189, 
                                       17.33305097, 6.942435158, 9.412250645, 21.73330004, 4.476469599, 
                                       17.80027852, 21.35602417, 23.0766478, 21.08632375, 11.77705762, 
                                       21.90836979, 12.6732618, 6.918519777, 5.180899885, 12.44777575, 
                                       16.37336398, 1.981396855, 21.80361512, 10.37034663, 10.83342264, 
                                       2.316610176, 23.48212524, 23.34717274, 1.140535684), cyl = c(NA, 
                                                                                                    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                                                                                    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 
                               disp = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                        NA, NA, NA, NA, NA), hp = c(29.87495928, 21.35133567, 22.59784251, 
                                                                    34.25086468, 21.58418366, 28.92966963, 4.61711529, 17.11389744, 
                                                                    50.21548993, 26.07596801, 40.75818972, 56.90429666, 15.23752367, 
                                                                    49.92442577, 46.09691199, 32.45820168, 9.490883353, 36.41029014, 
                                                                    5.951950338, 11.11280489, 44.81362144, 37.42131604, 22.27501345, 
                                                                    40.62603503, 4.486516984, 50.6184649, 54.18476435, 46.55415228, 
                                                                    25.39269486, 51.27024131, 23.7196842, 35.15808298), drat = c(NA, 
                                                                                                                                 NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                                                                                                                 NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                                                                                                                 NA), wt = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                                                                                                                             NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                                                                                                                             NA, NA, NA, NA, NA), qsec = c(NA, NA, NA, NA, NA, NA, NA, 
                                                                                                                                                                           NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                                                                                                                                                           NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), vs = c(NA, NA, NA, 
                                                                                                                                                                                                                           NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                                                                                                                                                                                                           NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 
                               am = c(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                                      1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1), gear = c(4, 
                                                                                             4, 4, 3, 3, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, 


print(mtcars_new)
# A tibble: 24 x 4
# Groups:   cyl, hp, am [24]
     cyl    hp    am data            
   <dbl> <dbl> <dbl> <list>          
 1     6   110     1 <tibble [2 x 8]>
 2     4    93     1 <tibble [1 x 8]>
 3     6   110     0 <tibble [1 x 8]>
 4     8   175     0 <tibble [2 x 8]>
 5     6   105     0 <tibble [1 x 8]>
 6     8   245     0 <tibble [2 x 8]>
 7     4    62     0 <tibble [1 x 8]>
 8     4    95     0 <tibble [1 x 8]>
 9     6   123     0 <tibble [2 x 8]>
10     8   180     0 <tibble [3 x 8]>

Теперь я хочу присоединить ВСЕ строки с AM к каждому DF с AM, соответственно. например, каждая строка с AM = 1, df в 'data' должна получать строки в mtcars_nulls с AM = 1 (строки 20-32) ..

Как вы думаете?

введите описание изображения здесь

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