如果第二列中存在第一列中的任何电话号码,则比较两列(包含合并的电话号码)

问题描述 投票:0回答:1

我需要比较结果数据框中的两列,并且这两列来自不同的源。

现在,我想对它们进行比较,并根据它们的匹配得到一个结果(标签)列。(是或否)

e_phonePhones

(例如e_phone =“881234567”和电话=“881234567; 665553331;”)

它们都可以有多个电话号码,用“;”分隔。 有时,e_phone 可以包含类似 e_phone="0992767312; +550661234567" 的号码。 (长度超过 9 位)

  • 我需要比较每个可用电话号码的后九位数字 来自电话中的 e_phone。

我已经清除了电话列,因为它来自 sql,但我是 R 新手,所以我真的很感谢任何人的帮助。

最后,我想在结果数据框中添加一个名为 e_phone_match 的列,其值为“YES”(如果电话中存在来自 e_phone 的任何号码),如果没有任何匹配,则为“NO”。

类似的东西

电话 电子电话 e_phone_match
881234567; 665553331; 881234567
r rstudio string-matching
1个回答
0
投票

使用

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
© www.soinside.com 2019 - 2024. All rights reserved.