如果一个数据框中的变量包含在另一数据框中的列表变量中,则将两个data.frame连接起来

时间:2019-04-26 19:26:36

标签: r dplyr

这是两个名为d.listd.keys的data.frames

d.list <- structure(list(mprop_address = c("0 NA NA NA NA", "100 E ABERT PL NA", 
                                       "100 E CAPITOL DR NA", "100 E CONCORDIA AV NA", "100 E HADLEY ST NA", 
                                       "100 E MEINECKE AV NA", "100 E MONTANA ST NA", "100 E NATIONAL AV NA", 
                                       "100 E PLEASANT ST NA", "100 E SEEBOTH ST NA", "100 E STATE ST NA", 
                                       "100 E WISCONSIN AV NA", "100 N 25TH ST NA", "100 N 32ND ST ADJ", 
                                       "100 N 35TH ST ADJ", "100 N 70TH ST NA", "100 N 71ST ST NA", 
                                       "100 N 75TH ST NA", "100 N 76TH ST NA", "100 N 80TH ST NA"), 
                     list_taxkeys = list(c("3512650100", "2730706000", "4620276000", 
                                           "3531698000", "3531935000", "3531936000", "3541837000", "3541863000", 
                                           "3551825000", "3601664100", "3601666000", "4280769000", "4340321000", 
                                           "4621691111", "4661586000", "4661594000", "4661597100", "5390457100", 
                                           "5800336100", "5800336200", "5800336300", "6690921000", "6690922100", 
                                           "6690923100", "3111708000", "9999999999", "4280907100", "4280912110"
                     ), "2731021000", "2420401000", "2820319000", "3132270100", 
                     "3220134000", "5050741110", "4281001000", c("3610105000", 
                                                                 "3610105100", "3610105110"), c("4280210100", "4288107000", 
                                                                                                "4288108000", "4288109000", "4280210110"), c("3921179000", 
                                                                                                                                             "3921179100"), c("3920604100", "3920604110"), c("4008118000", 
                                                                                                                                                                                             "4008119000", "4008120000"), "4010407200", "4011704000", 
                     "4060915000", "4061278000", "4190357000", "4190384000", 
                     "4070523000")), class = c("tbl_df", "tbl", "data.frame"
                     ), row.names = c(NA, -20L))

d.keys <- structure(list(TAXKEY = structure(c(1L, 4L, 3L, 2L), .Label = c("2731021000", 
                                                                       "4190357000", "4288107000", "4661597100"), class = "character"), 
                     years = c(1, 8, 20, 3)), class = "data.frame", row.names = c(NA, 
                                                                                  -4L))

d.keys有一列类字符,称为TAXKEY。

d.list有一列类别列表,称为“ list_taxkeys”。顾名思义,每个值都是一个税键列表。列表的长度各不相同;有时长度只有1。

在每个d.keys中包含d.list的情况下,我都想将d.keys$TAXKEY加入d.list$list_taxkeys

我尝试过此操作,但它给出了不兼容的类型(字符/列表)错误。

dplyr::inner_join(d.keys, d.list, by = c("TAXKEY" %in% "list_taxkeys))

有什么想法吗?使用%in%是否在正确的轨道上?

0 个答案:

没有答案