Я смотрю роман и хочу найти появление имен персонажей в книге. Некоторые персонажи идут под разными именами. Например, персонаж «Сисси Юп» идет под «Сисси» и «Юп». Я хочу объединить два ряда слов в один, чтобы увидеть подсчет «Сисси Юп».
Я рассматривал использование sum, rbind, merge и других подходов с использованием досок объявлений, но, похоже, ничего не работает. Много хороших примеров, но они не работают.
library(tidyverse)
library(gutenbergr)
library(tidytext)
ht <- gutenberg_download(786)
ht_chap <- ht %>%
mutate(linenumber = row_number(),
chapter = cumsum(str_detect(text, regex("^chapter [\\divxlc]",
ignore_case = TRUE))))
tidy_ht <- ht_chap %>%
unnest_tokens(word, text) %>%
mutate(word = str_extract(word, "[a-z']+")) # preserves online letters; removes _)
ht_count <- tidy_ht %>%
group_by(chapter) %>%
count(word, sort = TRUE) %>%
ungroup %>%
complete(chapter, word,
fill = list(n = 0))
gradgrind <- filter(ht_count, word == "gradgrind")
bounderby <- filter (ht_count, word == "bounderby")
sissy <- filter (ht_count, word == "sissy")
## TEST
sissy_jupe <- ht_count %>%
filter(word %in% c("sissy", "jupe"))
Я хочу один элемент «word» под названием «sissy_jupe», который соответствует n по главам.
Это близко, но не это.
# A tibble: 76 x 3
chapter word n
<int> <chr> <dbl>
1 0 jupe 0
2 0 sissy 1
3 1 jupe 0
4 1 sissy 0
5 2 jupe 5
6 2 sissy 9
7 3 jupe 3
8 3 sissy 1
9 4 jupe 1
10 4 sissy 0
# … with 66 more rows