Посчитайте, сколько раз слово появляется (dplyr) - PullRequest
0 голосов
/ 29 августа 2018

Простой вопрос здесь, возможно, дубликат этого ?

Я пытаюсь выяснить, как посчитать, сколько раз слово появляется в векторе. Я знаю, что могу подсчитать количество строк, в которых появляется слово, как показано здесь:

temp <- tibble(idvar = 1:3, 
               response = (c("This sounds great",
                      "This is a great idea that sounds great",
                      "What a great idea")))
temp %>% count(grepl("great", response)) # lots of ways to do this line
# answer = 3

Ответ в приведенном выше коде - 3, так как «великий» появляется в трех строках. Однако слово «великий» встречается 4 раза в векторе «ответ». Как мне найти это вместо этого?

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Вне моей головы, это должно решить вашу проблему:

library(tidyverse)
temp$response %>% 
  str_extract_all('great') %>%
  unlist %>%
  length
0 голосов
/ 29 августа 2018

Мы могли бы использовать str_count из stringr, чтобы получить количество экземпляров, имеющих 'great' в каждой строке, а затем получить sum из этого числа

library(tidyverse)
temp %>% 
   mutate(n = str_count(response, 'great')) %>%
   summarise(n = sum(n))
# A tibble: 1 x 1
#      n
#   <int>
#1     4

Или используя regmatches/gregexpr из base R

sum(lengths(regmatches(temp$response, gregexpr('great', temp$response))))
#[1] 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...