下面是一个在R中有两列字符数据类型的数据框架,我的要求是假设如果我有一个混乱的字符串"FB,AI,IT,GE",我想测试这个混乱的字符串是否存在于"a2列“中,然后返回相应的"a1列”值。显然,第一个"a2列“值与上面混乱的字符串匹配,我需要返回相应的"a1”值。如果能避免使用“否则”,我会很感激。
a1 = c("B1","B2","B3","B4","B5")
a2 = c("IT,GE,FB,AI","GE,AI","FB,IT,AI","GE,IT,FB","AI")
a12 = data.frame(a1,a2)
a12$a1 = as.character(a12$a1)
a12$a2 = as.character(a12$a2)发布于 2017-12-29 06:19:35
#string to be matched
match_str <- "FB,AI,IT,GE"
idx <- sapply(strsplit(as.character(a12$a2),","),
function(x) setequal(unlist(strsplit(as.character(match_str),",")), unlist(x)))
a12$a1[idx]产出如下:
[1] "B1"#sample data
> dput(a12)
structure(list(a1 = c("B1", "B2", "B3", "B4", "B5"), a2 = c("IT,GE,FB,AI",
"GE,AI", "FB,IT,AI", "GE,IT,FB", "AI")), .Names = c("a1", "a2"
), row.names = c(NA, -5L), class = "data.frame")https://stackoverflow.com/questions/48018075
复制相似问题