Считать сохранение другого столбца - PullRequest
0 голосов
/ 24 марта 2020

У меня есть набор данных, который содержит заголовок, и я хочу извлечь из него несколько слов. Я использовал функцию count (), чтобы проверить общее количество вхождений для каждого слова, а затем нанести их на график. Вот код:

install.packages("remotes")
remotes::install_github("tweed1e/werfriends")


library(werfriends)

friends_raw <- werfriends::friends_episodes

library(tidytext)
library(tidyverse)

custom_stop_words <- bind_rows(tibble(word = c("1","2", "one"), 
                                      lexicon = c("custom", "custom", "custom")), 
                               stop_words)

friends_raw %>%
  unnest_tokens(word, title) %>%
  mutate(word = str_remove(word, "'s")) %>%
  anti_join(bind_rows(custom_stop_words)) %>%
  count(word) %>%
  top_n(10) %>%
  mutate(word = fct_reorder(word, n)) %>%
  ggplot(aes(x = word, y = n)) + geom_col() + coord_flip() + 
  scale_y_continuous(breaks = seq(0,30,5))

В наборе данных friends_raw есть также столбец season для каждого заголовка, и я хотел бы также обозначить сезон, в котором происходят события, с fill , Проблема в том, что при таком подходе я не знаю, как сохранить столбец season и выполнить подсчет, получая упорядоченные результаты. Любые подсказки о том, как это сделать?

1 Ответ

1 голос
/ 25 марта 2020

Вместо count вы можете использовать add_count (после group_by(season)). Это даст вам счет за каждый сезон.

После этого, если вы group_by(word, season), у вас будут соответствующие данные для отображения количества слов в каждом сезоне (и столбец season доступен для fill).

friends_raw %>%
  unnest_tokens(word, title) %>%
  mutate(word = str_remove(word, "'s")) %>%
  anti_join(bind_rows(custom_stop_words)) %>%
  group_by(season) %>%
  add_count(word) %>%
  group_by(word, season) %>%
  slice(1) %>%
  group_by(word) %>%
  mutate(word_total = sum(n)) %>%
  ungroup() %>%
  filter(word_total>5) %>%
  mutate(word = fct_reorder(word, word_total)) %>%
  ggplot(aes(x = word, y = n, fill = factor(season))) + geom_col() + coord_flip() + 
  scale_y_continuous(breaks = seq(0,30,5)) +
  scale_fill_discrete(name = "Season")

Участок

Friends plot by season with number of words

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...