Как найти в списке все слова, содержащие две буквы определенной буквы? - PullRequest
0 голосов
/ 05 мая 2020

Используя Rstudio, как мне найти все слова, в которых есть две буквы определенной буквы, с помощью grep / grepl и sub / gsub?

Ответы [ 2 ]

3 голосов
/ 05 мая 2020

Если вам нужно найти состояния с двумя или более "a" s в них, вы можете использовать:

grep('.*a.*a.*', state.name, value = TRUE, ignore.case = TRUE)

# [1] "Alabama"        "Alaska"         "Arizona"        "Arkansas"      
# [5] "California"     "Delaware"       "Hawaii"         "Indiana"       
# [9] "Kansas"         "Louisiana"      "Maryland"       "Massachusetts" 
#[13] "Montana"        "Nebraska"       "Nevada"         "North Carolina"
#[17] "North Dakota"   "Oklahoma"       "Pennsylvania"   "South Carolina"
#[21] "South Dakota"  

Если вам нужно ровно два "a" s, мы можем использовать str_count для подсчета количество "a" s, а затем подмножество.

state.name[stringr::str_count(state.name, 'a|A') == 2]

# [1] "Arizona"        "California"     "Delaware"       "Hawaii"        
# [5] "Indiana"        "Kansas"         "Louisiana"      "Maryland"      
# [9] "Massachusetts"  "Montana"        "Nebraska"       "Nevada"        
#[13] "North Carolina" "North Dakota"   "Oklahoma"       "Pennsylvania"  
#[17] "South Carolina" "South Dakota"  
2 голосов
/ 05 мая 2020

Чтобы найти ровно 2 "a" s, используя только базовый R, вы можете:

state.name[nchar(state.name) - nchar(gsub('[Aa]', '', state.name)) == 2]
#  [1] "Arizona"        "California"     "Delaware"       "Hawaii"        
#  [5] "Indiana"        "Kansas"         "Louisiana"      "Maryland"      
#  [9] "Massachusetts"  "Montana"        "Nebraska"       "Nevada"        
# [13] "North Carolina" "North Dakota"   "Oklahoma"       "Pennsylvania"  
# [17] "South Carolina" "South Dakota" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...