2017-06-01 127 views
0

我有一個簡單的看起來像這樣的數據框只有它有2k行。我想知道是否有辦法通過LocationID列中的值提取數據或過濾數據。我想提取其中包含單詞「Creek」或「River」的行,而省略其他名稱(例如Banana Forest值)。如何根據r中列值的單詞過濾數據?

LocationID, Code 
Alk River, 232 
Bala River, 4324 
Banana Forest, 344 
Cake River, 432 
Alk Creek, 6767 
Cake Creek, 766 

謝謝!

+2

看看這樣做'?grep' – HubertL

+0

我是新於R,但我會​​看這個了! –

+1

如果你想在不安裝軟件包的情況下做到這一點,'grep'或'grepl'就足夠了:''dat [grepl(「river | creek」,dat $ LocationID,ignore.case = TRUE)]'for實例。 – thelatemail

回答

1

我們可以tidyverse

library(dplyr) 
library(stringr) 
df1 %>% 
    filter(str_detect(LocationID, '\\b(River|Creek)\\b')) 
# LocationID Code 
#1 Alk River 232 
#2 Bala River 4324 
#3 Cake River 432 
#4 Alk Creek 6767 
#5 Cake Creek 766 
+0

我得到了這個錯誤!錯誤filter_impl(.data,dots):找不到函數「str_detect」等待讓我下載tidyverse .. –

+0

@JulietR我應該提到'libraryr(tidyverse)',它在'library(stringr)'中更新了這個帖子 – akrun

+1

謝謝你,我會檢查現在! –