删除字符串中的子字符串并保留一些子字符串

时间:2015-03-15 19:07:30

标签: r string

PES+PWA+PWH

我在数据框中的R中有上面的字符串,我必须编写一个脚本,如果它找到PES,那么它会保留PES并删除其余部分。

我只希望输出中有PES

3 个答案:

答案 0 :(得分:1)

text <- c("hello", "PES+PWA+PWH", "world")
text[grepl("PES", text)] <- "PES"
# "hello" "PES"   "world"

答案 1 :(得分:1)

R正则表达式中的分组运算符将允许删除非“PES”字符:

 gsub("(.*)(PES)(.*)", "\\2", c("PES+PWA+PWH", "something else") )
 #[1] "PES"            "something else"

问题描述不是很清楚,因为另一位受访者非常不同地解释了您的请求

答案 2 :(得分:0)

从上面的问题我认为你的意思是你想只包含那些包含PES的行?

您可以在R中使用grep函数

column<-c("PES-PSA","PES","PWS","PWA","PES+PWA+PWH")
column[grep("PES",column)]
[1] "PES-PSA"     "PES"         "PES+PWA+PWH"

Grep将字符串作为第一个参数匹配,并将要匹配的矢量作为第二个参数匹配。