Как составить график разбивки фильмов по жанрам по годам - PullRequest
0 голосов
/ 15 мая 2019

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

Мой фрейм данных должен показывать год, а затем x количество выпусков было драматическим, y число загадочным и так далее.

Для простоты я отфильтровал, чтобы найти наиболее распространенные жанры, однако фильтр здесь работает не так, как ожидалось.

После фильтрации переменной я не уверен, куда идти дальше.

Изо всех сил пытаюсь осмыслить шаги, но, надеюсь, это достаточно ясно ... Заранее благодарю за любую помощь.

library(readr)
library(lubridate)
library(dplyr)

ratings <- read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-01-08/IMDb_Economist_tv_ratings.csv")
ratings$year_rel <-year(ratings$date)


ratings %>%
  count(genres) %>%
  arrange(desc(n)) %>%
  filter(n > 100)

desired_genres <- c("Comedy, Drama", "Drama", "Action, Crime, Drama", "Action, Adventure, Drama", "Crime", "Drama")

ratings %>%
  select(genres, year_rel) %>%
  filter(genres %in% desired_genres) #this only shows the drama genre

#Unsure where to go from here so as to break down the releases by genre.

1 Ответ

1 голос
/ 15 мая 2019

Кажется, ты почти у цели. Ваш фильтр не работает должным образом, потому что в данных столбец жанра не имеет пробелов, а ваш вектор desired_genres имеет пробелы. Вместо того, чтобы вводить то, что вы видите, избегайте ошибок, программно извлекая нужные жанры, используя pull(genres) до конца вашего конвейера и присваивая результат вашему desired_genres вектору.

Затем добавьте group_by и add_count:

library(readr)
library(lubridate)
library(dplyr)

ratings <- read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-01-08/IMDb_Economist_tv_ratings.csv")
ratings$year_rel <-year(ratings$date)


desired_genres <- ratings %>%
  count(genres) %>%
  arrange(desc(n)) %>%
  filter(n > 100) %>%
  pull(genres)

filtered_rating <- ratings %>%
  select(genres, year_rel) %>%
  filter(genres %in% desired_genres) %>%
  group_by(year_rel) %>%
  add_count(genres)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...