Я выполнил поиск в Google, просмотрел текущие исправления для книги, искал ошибку в переполнении стека и не нашел ответа.Я следую в книге на страницах 4-10.
Эта часть работает нормально:
original_books <- austen_books() %>%
group_by(book) %>%
mutate(linenumber = row_number(),
chapter = cumsum(str_detect(text, regex("^chapter [\\divxlc]",
ignore_case = TRUE)))) %>%
ungroup()
original_books
tidy_books <- original_books %>%
unnest_tokens(word, text)
tidy_books
data(stop_words)
tidy_books<- tidy_books %>%
anti_join(stop_words)
tidy_books %>%
count(word, sort = TRUE)
tidy_books %>%
count(word, sort= TRUE) %>%
filter(n>600) %>%
mutate(word = reorder(word, n)) %>%
ggplot(aes(word, n)) +
geom_col() +
xlab(NULL) +
coord_flip()
hgwells <- gutenberg_download(c(35, 36, 5230, 159))
tidy_hgwells <- hgwells %>%
unnest_tokens(word, text) %>%
anti_join(stop_words)
tidy_hgwells %>%
count(word, sort=TRUE)
bronte <- gutenberg_download(c(1260, 768, 969, 9182, 767))
tidy_bronte <- bronte %>%
unnest_tokens(word, text) %>%
anti_join(stop_words)
tidy_bronte %>%
count(word, sort=TRUE)
frequency <- bind_rows(mutate(tidy_bronte, author="Bronte Sisters"),
mutate(tidy_hgwells, author = "H.G. Wells"),
mutate(tidy_books, author = "Jane Austen")) %>%
mutate(word = str_extract(word, "[a-z']+")) %>%
count(author, word) %>%
group_by(author) %>%
mutate(proportion = n / sum(n)) %>%
select(-n) %>%
spread(author, proportion) %>%
gather(author, proportion, 'Bronte Sisters':'H.G. Wells')
frequency
Но когда я запускаю этот код:
ggplot(frequency, aes(x=proportion, y='Jane Austen',
color=abs('Jane Austen' - proportion))) +
geom_abline(color="gray40", lty=2) +
geom_jitter(alpha=0.1, size=2.5, width=0.3, height=0.3) +
geom_text(aes(label= word), check_overlap=TRUE, vjust=1.5) +
scale_x_log10(labels= percent_format()) +
scale_y_log10(labels= percent_format()) +
scale_color_gradient(limits= c(0, 0.001),
low= "darkslategray4", high = "gray75") +
facet_wrap(~author, ncol=2) +
theme(legend.position="none") +
labs(y="Jane Austen", x=NULL)
Я получаю эту ошибку: Ошибка в «Джейн Остин» - пропорция: нечисловой аргумент для двоичного оператора
Это структура частоты:
> str(frequency)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 57818 obs. of 4 variables:
$ word : chr "a" "a'most" "a'n't" "aback" ...
$ Jane Austen: num 9.19e-06 NA 4.60e-06 NA NA ...
$ author : chr "Bronte Sisters" "Bronte Sisters" "Bronte Sisters"
"Bronte Sisters" ...
$ proportion : num 3.19e-05 1.59e-05 NA 3.98e-06 3.98e-06 ...
Пропорция и Джейн Остин имеют числовые значенияно есть и АН.Я попытался удалить их, но это не помогло, плюс я подумал, что книга могла бы поднять это как потенциальную проблему.
Это библиотеки, которые я использую.Когда я запускаю их, я не вижу никаких конфликтов, которые могли бы маскировать функцию:
library(dplyr)
library(tidytext)
library(janeaustenr)
library(stringr)
library(tidyr)
library(ggplot2)
library(gutenbergr)
library(scales)
Я использую RStudio версии 1.1.442 на Windows 10. Я использую R 3.4.4
Есть идеи, что может быть не так?