我有以下R程序。
Test<-"CLC2" %in% "CLC2,CLC2,CLC2"
Test
Test1<-"CLC2" %in% "CLC2"
Test1
在第一种情况下,我希望逻辑条件为真,因为它匹配第一个单词(在我的情况下是必需的)。
答案 0 :(得分:3)
您可以在字符串中找到一个单词,并且(如有必要)检查它是否是字符串的第一个单词
gregexpr(pattern = "CLC2","CLC2,CLC2,CLC2")[[1]][1] == 1
答案 1 :(得分:2)
尝试
"CLC2" %in% c("CLC2", "CLC2", "CLC2")
# [1] TRUE
或
"CLC2" %in% strsplit("CLC2,CLC2,CLC2", ",")[[1]]
# [1] TRUE
第二个在每个,
个字符处拆分你的字符串。
你只想查看第一个值,然后它应该是
"CLC2" %in% strsplit("CLC2,CLC2,CLC2", ",")[[1]][1]
"CLC2" %in% c("CLC2", "CLC2", "CLC2")[1]
正如@PierreLafortune所指出的那样。在这种情况下,您不需要%in%
,但也可以使用==
,因为您只是将一个值与另一个值进行比较。
答案 2 :(得分:1)
您也可以尝试
grepl('\\<CLC2\\>', unlist(strsplit("CLC2,CLC2,CLC2", ","))[1])
#[1] TRUE