簡體   English   中英

匹配混雜的字符串並在R中返回相應的列值

[英]Matching jumbled strings and returning corresponding column value in R

下面是一個在R中具有兩列字符數據類型的數據幀。我的要求是,假設我有一個混雜字符串“ FB,AI,IT,GE”,我想測試一下這個混雜字符串是否存在於“ a2列”中”,然后返回相應的“ a1列”值。 顯然,第一個“ a2列”值與上面混雜的字符串匹配,我需要返回相應的“ a1”值。 我將避免使用“ if-else”。 謝謝,請幫助。

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)

希望這可以幫助!

#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")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM