Соедините два data.frames, если переменная в одном dataframe содержится в переменной списка в другом dataframe - PullRequest
0 голосов
/ 26 апреля 2019

Вот два data.frames с именами d.list и d.keys

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%?

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