2017-08-28 42 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) 
相關問題