看到一些帖子展示了一些接近我需要的东西,但没有一个是完全正确的。
我有一个英国邮政编码的df:
df <- data.frame(ID = c("FK5 4JU", "FK2 9LD", "KA7 3XB", "ML1 2ND", "KA4 8DB", "ML1 5DD"),
var1 = c('a', 'b', 'c', 'c', 'd', 'e'),
var2 = c(1, 1, 1, 0, 1, 1))
我尝试将其加入另一个 Dataframe (df2),其中只包含邮政编码的第一部分:
df2 <- data.frame(ID = c("FK5 4", "FK2 9", "KA7 3", "ML1 2", "KA4 8", "ML1 5"),
cat = c(6,6,4,5,4,5))
理想情况下使用left_join()和grepl()的组合。
2条答案
按热度按时间3htmauhk1#
我们可以使用{powerjoin}包:
正如@moodymudskipper在评论中建议的那样,我们也可以使用
stringr::str_start()
:来自OP的数据:
创建于2023年3月16日,使用reprex v2.0.2
yqyhoc1h2#
我们可以在这里使用模糊连接