2017-08-28 28 views
1

我是新的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 

而且我希望所有的行,其中“蓝色”是前“粉红”,结果将是

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

,我会喜欢知道另一个提示:)我怎么能做到删除字符列表中的所有“绿色”,例如第一行:

pink-blue-blue-END 

感谢您的帮助

回答

3

我们可以使用grep来匹配单词“粉红色”,后跟一个或多个字符,后跟单词“蓝色”。需要注意的是\\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) 
相关问题