使用 R 将行值与数据框中的列进行部分匹配

Compare row values to column in dataframe for partial match using R

我有一个数据框

Name
1.Started
2.Home
3.Signout

我想与另一个数据框中的另一列进行比较

Df
1.help/services/Home 
2./msoffice/home 
3./windows.support

预期输出:

False
True
False

这表明 Home from name exists in df。它与另一整列部分匹配。

我们可以比较 Namedf1 并使用 basename 来获取字符串的最后一部分。

df1$Name %in% basename(df2$col)
#[1] FALSE  TRUE FALSE

数据

假设数据帧是 df1df2,如下所示。

df1 <- structure(list(Name = c("Started", "Home", "Signout")), row.names = c(NA, 
      -3L), class = "data.frame")

df2 <- structure(list(col = c("help/services/Home", "/msoffice/home", 
"/windows.support")), class = "data.frame", row.names = c(NA, -3L))

我们可以使用grepl

mapply(grepl, tolower(df1$Name), tolower(df2$col))
#FALSE    TRUE   FALSE 

数据

df1 <- structure(list(Name = c("Started", "Home", "Signout")), row.names = c(NA, 
      -3L), class = "data.frame")

df2 <- structure(list(col = c("help/services/Home", "/msoffice/home", 
"/windows.support")), class = "data.frame", row.names = c(NA, -3L))