我有两个字符串列表,想要找到两个列表中的字符串。
我尝试将列表转换为向量,这样我就可以使用交叉或setequal但是将所有字符串转换为数字并且(如果有一个明显的答案,我可以弄清楚道歉),我可以& #39; t似乎在没有发生这种情况的情况下转换列表。
前进的最佳方式是什么?
编辑: 我有这些数据框:
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()不能保留这些字符串;是否还有其他方法可以将它们转换为因子,还是有其他可以更好地运作的操作?
答案 0 :(得分:0)
您还需要在数据框中指定列。
使用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"