我想要提取与给定模式不匹配的字符向量元素。参见示例:
x<-c("age_mean","n_aitd","n_sle","age_sd","n_poly","n_sero","child_age")
x_age<-str_subset(x,"age")
x_notage<-setdiff(x,x_age)
在此示例中,我要提取与模式“ age”不匹配的那些字符串。如何通过一次str_subset调用来实现?模式“不限年龄”的适当语法是什么?如您所见,我不是正则表达式的专家。感谢您的任何评论。
答案 0 :(得分:0)
在这种情况下,似乎没有理由使用stringr
(也许有效率)。您可以简单地使用grep
:
grep("age", x, invert = TRUE, value = TRUE)
# [1] "n_aitd" "n_sle" "n_poly" "n_sero"
但是,如果您想坚持使用str_stringr
,请注意(来自?str_subset
)
str_subset()是x [str_detect(x,pattern)]的包装,等效于grep(pattern,x,value = TRUE)。
所以
x[!str_detect(x, "age")]
# [1] "n_aitd" "n_sle" "n_poly" "n_sero"
或者也是
x[!grepl("age", x)]
# [1] "n_aitd" "n_sle" "n_poly" "n_sero"