从字符串向量中删除元素(具有确切的名称和名称的开头)

时间:2017-10-29 14:12:50

标签: r

我有一个很长的蛋白质名称载体,我想减少它。

我想从向量中删除所有条目==" 5-FCL-like_protein"以" CBSS - "

开头的所有条目

对于第一个问题,我可以在%

中使用%
remove <- c("5-FCL-like_protein")
vec[! vec %in% remove]

但是我怎样才能包含以&#34; CBSS开头的条目 - &#34;还有吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

您可以在子集中使用两个条件。第一个与%in%非常相似,但我使用==只是因为个人偏好。如果您要排除多个字符串,则可以返回%in%。第二个使用grepl匹配字符串开头的"CBSS-"

vec <- c("Protein1","Protein2", "CBSS-Protein 2", "5-FCL-like_protein")
vec[!vec == "5-FCL-like_protein" & !grepl("^CBSS-", vec)]
#[1] "Protein1" "Protein2"

答案 1 :(得分:1)

或者我们可以在TextChanged

中使用它
grep

数据

grep("^(CBSS|5-FCL-like_protein$)", vec, value = TRUE, invert = TRUE)
#[1] "Protein1" "Protein2"