【发布时间】:2020-06-04 16:32:17
【问题描述】:
我有一个数据集,可以对它说 DT1。 DT1 有 2 列,City 和 Places。我将 DT1 与另一个数据集 (DT2) 匹配以填充缺失的 City 值。但是正如您所看到的,有些地方位于不同的城市,但名称相同。我想删除这些地方并将其余的地方与 DT2 匹配。这是我的 DT1。
DT1 <- data.table::data.table(city = c("XXX", "XXX", "YYY","ZZZ"),
places= c("apple","orange","apple","pineapple"))
#> City BirthPlace
#> XXX apple
#> XXX orange
#> YYY apple
#> ZZZ pineapple
当我使用 unique 或 distinct 时,它会保留 1 个苹果,这会导致 DT2 出现问题,因为即使我的 apple 地点属于 YYY,它也会将 XXX 粘贴到 DT2 中的 city 列。
这里是DT2的一个例子
DT2 <- data.table::data.table(zipcode = c("00001","00002","00003","00004"),
birthplace= c("apple","orange","pineapple","grapes")
#> ZipCode BirthPlace
#> 00001 apple
#> 00002 orange
#> 00003 pineapple
#> 00004 grapes
如您所见,我在 DT2 中有一个 apple 位置。我不知道它的位置,是在城市XXX还是在YYY。这就是为什么我需要删除 DT1 中的所有 apple 行,但唯一或不同的功能不允许我据我所知他们总是保留第一行。
这就是我想要实现的目标
DT3 <- data.table::data.table(city = c("XXX","ZZZ"),
birthplace= c("orange","grapes"),
zipcode = c("00002","00004")
#> City BirthPlace ZipCode
#> XXX orange 00002
#> ZZZ grapes 00004
除了一些出生地值包括标点符号之外,例如 apple st。 我试图将其拆分,并将 apple 与 gsub("^(st.)*$","",dt2$birthplace) 分开,但它也没有对这些人提出任何建议? p>
【问题讨论】:
标签: r data.table unique distinct gsub