使用 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
。它与另一整列部分匹配。
我们可以比较 Name
和 df1
并使用 basename
来获取字符串的最后一部分。
df1$Name %in% basename(df2$col)
#[1] FALSE TRUE FALSE
数据
假设数据帧是 df1
和 df2
,如下所示。
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))
我有一个数据框
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
。它与另一整列部分匹配。
我们可以比较 Name
和 df1
并使用 basename
来获取字符串的最后一部分。
df1$Name %in% basename(df2$col)
#[1] FALSE TRUE FALSE
数据
假设数据帧是 df1
和 df2
,如下所示。
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))