2013-11-21 82 views
0

解析完網站後,我得到了這個列表,我只想保留列表中沒有「#M」的列表。R,刪除沒有匹配的正則表達式的列表

> a 
[1] "/t5/SIM-CFD/td-p/3423843"        
[2] "/t5/SIM-CFD/td-p/3423843/page/2"      
[3] "/t5/SIM-CFD/m-p/4305885#M2261"      
[4] "/t5/Support/m-p/4467611#M2801" 

所以我的結果會像下面那樣。

> result 
[1] "/t5/SIM-CFD/td-p/3423843"        
[2] "/t5/SIM-CFD/td-p/3423843/page/2"      

我試過以下,但它不工作..

a[grepl("#M", a , ] 

有什麼建議?這聽起來很簡單,但我想不出解決方案。 謝謝!

+1

錯字? 'a [!grepl(「#M」,a)]'有效。 –

+0

是的 - 非常感謝! – user1486507

回答

1

試試這個:

a[!sapply(a,function(x) grepl("#M",x))] 
+0

謝謝!它像一個魅力! – user1486507

+0

@ user1486507即使是卡斯滕的作品。這是一個更簡單的方法來做到這一點 - 更好的imo,但我猜想我的更通用一些。 – jackStinger