我需要比较结果数据框中的两列,并且这两列来自不同的源。
现在,我想对它们进行比较,并根据它们的匹配得到一个结果(标签)列。(是或否)
有 e_phone 和 Phones。
(例如e_phone =“881234567”和电话=“881234567; 665553331;”)
它们都可以有多个电话号码,用“;”分隔。 有时,e_phone 可以包含类似 e_phone="0992767312; +550661234567" 的号码。 (长度超过 9 位)
我已经清除了电话列,因为它来自 sql,但我是 R 新手,所以我真的很感谢任何人的帮助。
最后,我想在结果数据框中添加一个名为 e_phone_match 的列,其值为“YES”(如果电话中存在来自 e_phone 的任何号码),如果没有任何匹配,则为“NO”。
类似的东西
电话 | 电子电话 | e_phone_match |
---|---|---|
881234567; 665553331; | 881234567 | 是 |
使用
str_detect()
:
library(dplyr)
library(stringr)
df <- tibble(
Phones = c("881234567; 665553331;","881234444; 665553331;"),
e_phone = c(881234567, 881234568)
)
df |>
mutate(match = str_detect(Phones, as.character(df$e_phone)))
Phones e_phone match
<chr> <dbl> <lgl>
1 881234567; 665553331; 881234567 TRUE
2 881234444; 665553331; 881234568 FALSE