在R中联接两个数据集

时间:2020-08-07 10:30:55

标签: r

我有两个数据集,一个是嵌套的,我想将另一个日期集加入其中。问题是,其他日期集中缺少某些数据。这对我来说无关紧要,因为我想在某些情况下将数据集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都应获取mtcars_nulls中AM = 1(行20-32)的行。

你怎么看?

enter image description here

0 个答案:

没有答案