如何 select 基于其位置的字符列表中的特定元素

How to select a specific element on a list of character based on its position

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

我有一个如下所示的数据框:

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" 在 "pink" 之前的所有行,结果将是

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

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

pink-blue-blue-END 

感谢您的帮助

我们可以使用 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)