如何根据位置选择字符列表中的特定元素

时间:2017-08-28 10:05:28

标签: r position conditional character

我是新用户,我需要一些帮助。

我的数据框看起来像这样:

Type                                     ID
pink-blue-blue-green-END                 125
blue-pink-END                            145
green-green-pink-END                     489
green-pink-blue-END                      478
pink-green-green-blue-END                546

我希望所有的行都在" blue"在"粉红色"之前,结果将是

Type                                     ID
pink-blue-blue-green-END                 125
green-pink-blue-END                      478
pink-green-green-blue-END                546

我想知道另一个提示:)我怎样才能删除所有"绿色"在字符列表中,例如第一行:

pink-blue-blue-END 

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

我们可以使用grep匹配单词“pink”,后跟一个或多个字符,后跟单词“blue”。请注意,\\b表示单词边界

df1[grepl("\\bpink\\b-.*\\bblue\\b", df1$Type),]
#                       Type  ID
#1  pink-blue-blue-green-END 125
#4       green-pink-blue-END 478
#5 pink-green-green-blue-END 546

对于第二种情况,请使用gsub

df1$Type <- gsub("green-", "", df1$Type)
相关问题