我有两个字符串列表,想找到两个列表中都有哪些字符串。
我尝试将列表转换为向量,以便我可以使用相交或设置相等,但这将所有字符串转换为数字和(抱歉,如果有一个明显的答案我无法弄清楚(,我似乎无法在没有发生这种情况的情况下转换列表。
最好的前进方向是什么?
编辑:我有这些数据框:
dput(s)
structure(list(V1 = structure(c(3L, 2L, 1L, 4L), .Label = c("24d2afb212410711de0e237e5435e104",
"2a3d9ca791a579a14883de538a012e24", "a90b03209a8095ec406809d89d5035c3",
"f271eb38cc409c6bfe9dcf2bfcab8471"), class = "factor")), .Names = "V1", row.names = c(NA,
-4L), class = "data.frame")
dput(r)
structure(list(V1 = structure(c(2L, 1L, 4L, 3L), .Label = c("24d2afb212410711de0e237e5435e104",
"2a3d9ca791a579a14883de538a012e24", "7320e2e921df862968954d4b60e2a80a",
"a9f47ec7c488d2bcddf2c1adc2bf6305"), class = "factor")), .Names = "V1", row.names = c(NA,
-4L), class = "data.frame")
我想找到两者中的字符串,即
2a3d9ca791a579a14883de538a012e24
和24d2afb212410711de0e237e5435e104
.
as.character(( 不适用于保留这些字符串;是否有其他方法可以将它们转换为因子,或者是否有其他操作会更好?
您还需要在数据框中指定列。
有了intersect
,
intersect(r$V1, s$V1)
#[1] "2a3d9ca791a579a14883de538a012e24" "24d2afb212410711de0e237e5435e104"
有了grep
,
unlist(sapply(r$V1, function(i)grep(i, s$V1, value = TRUE)))
#[1] "2a3d9ca791a579a14883de538a012e24" "24d2afb212410711de0e237e5435e104"