Saya memiliki kumpulan data yang berisi judul, dan saya ingin mengekstrak beberapa kata darinya. Saya menggunakan fungsi count() untuk memeriksa jumlah total kemunculan untuk setiap kata, dan kemudian memplotnya. Berikut kodenya:

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))

Dalam dataset friends_raw ada juga kolom season untuk setiap judul, dan saya juga ingin memplot musim di mana kejadian terjadi, dengan fill. Masalahnya adalah, dengan pendekatan ini saya tidak tahu cara menyimpan kolom season dan menghitung, mendapatkan hasil yang dipesan. Adakah petunjuk tentang cara melakukan ini?

0
Norhther 24 Maret 2020, 20:03

1 menjawab

Jawaban Terbaik

Alih-alih menggunakan count Anda dapat menggunakan add_count (setelah group_by(season)). Ini akan memberi Anda jumlah untuk setiap musim.

Setelah itu, jika Anda group_by(word, season) Anda akan memiliki data yang sesuai untuk menunjukkan jumlah kata setiap musim (dan kolom season tersedia untuk 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")

Alur

Friends plot by season with number of words

1
Ben 25 Maret 2020, 02:58