## Question 1: rename()

Rename Film → movie_title and Year → release_year


``` r
q1 <- movies %>%
  rename(movie_title = Film,
         release_year = Year)

head(q1, 6)
## # A tibble: 6 × 8
##   movie_title               Genre `Lead Studio` `Audience score %` Profitability
##   <chr>                     <chr> <chr>                      <dbl>         <dbl>
## 1 Zack and Miri Make a Por… Roma… The Weinstei…                 70          1.75
## 2 Youth in Revolt           Come… The Weinstei…                 52          1.09
## 3 You Will Meet a Tall Dar… Come… Independent                   35          1.21
## 4 When in Rome              Come… Disney                        44          0   
## 5 What Happens in Vegas     Come… Fox                           72          6.27
## 6 Water For Elephants       Drama 20th Century…                 72          3.08
## # ℹ 3 more variables: `Rotten Tomatoes %` <dbl>, `Worldwide Gross` <chr>,
## #   release_year <dbl>

Question 2: select()

Keep only selected columns

q2 <- q1 %>%
  select(movie_title, release_year, Genre, Profitability, `Rotten Tomatoes %`)

head(q2, 6)
## # A tibble: 6 × 5
##   movie_title               release_year Genre Profitability `Rotten Tomatoes %`
##   <chr>                            <dbl> <chr>         <dbl>               <dbl>
## 1 Zack and Miri Make a Por…         2008 Roma…          1.75                  64
## 2 Youth in Revolt                   2010 Come…          1.09                  68
## 3 You Will Meet a Tall Dar…         2010 Come…          1.21                  43
## 4 When in Rome                      2010 Come…          0                     15
## 5 What Happens in Vegas             2008 Come…          6.27                  28
## 6 Water For Elephants               2011 Drama          3.08                  60

Question 3: filter()

Only movies released after 2000 with Rotten Tomatoes % above 80

q3 <- q2 %>%
  filter(release_year > 2000, `Rotten Tomatoes %` > 80)

head(q3, 6)
## # A tibble: 6 × 5
##   movie_title            release_year Genre    Profitability `Rotten Tomatoes %`
##   <chr>                         <dbl> <chr>            <dbl>               <dbl>
## 1 WALL-E                         2008 Animati…         2.90                   96
## 2 Waitress                       2007 Romance         11.1                    89
## 3 Tangled                        2010 Animati…         1.37                   89
## 4 Rachel Getting Married         2008 Drama            1.38                   85
## 5 My Week with Marilyn           2011 Drama            0.826                  83
## 6 Midnight in Paris              2011 Romence          8.74                   93

Question 4: mutate()

Add Profitability_millions

q4 <- q3 %>%
  mutate(Profitability_millions = Profitability / 1000000)

head(q4, 6)
## # A tibble: 6 × 6
##   movie_title            release_year Genre    Profitability `Rotten Tomatoes %`
##   <chr>                         <dbl> <chr>            <dbl>               <dbl>
## 1 WALL-E                         2008 Animati…         2.90                   96
## 2 Waitress                       2007 Romance         11.1                    89
## 3 Tangled                        2010 Animati…         1.37                   89
## 4 Rachel Getting Married         2008 Drama            1.38                   85
## 5 My Week with Marilyn           2011 Drama            0.826                  83
## 6 Midnight in Paris              2011 Romence          8.74                   93
## # ℹ 1 more variable: Profitability_millions <dbl>

Question 5: arrange()

Sort by rating and profitability (descending)

q5 <- q4 %>%
  arrange(desc(`Rotten Tomatoes %`), desc(Profitability_millions))

head(q5, 6)
## # A tibble: 6 × 6
##   movie_title       release_year Genre     Profitability `Rotten Tomatoes %`
##   <chr>                    <dbl> <chr>             <dbl>               <dbl>
## 1 WALL-E                    2008 Animation          2.90                  96
## 2 Midnight in Paris         2011 Romence            8.74                  93
## 3 Enchanted                 2007 Comedy             4.01                  93
## 4 Knocked Up                2007 Comedy             6.64                  91
## 5 Waitress                  2007 Romance           11.1                   89
## 6 A Serious Man             2009 Drama              4.38                  89
## # ℹ 1 more variable: Profitability_millions <dbl>

Question 6: Combined pipeline

All transformations in one chain

q6 <- movies %>%
  rename(movie_title = Film,
         release_year = Year) %>%
  select(movie_title, release_year, Genre, Profitability, `Rotten Tomatoes %`) %>%
  filter(release_year > 2000, `Rotten Tomatoes %` > 80) %>%
  mutate(Profitability_millions = Profitability / 1000000) %>%
  arrange(desc(`Rotten Tomatoes %`), desc(Profitability_millions))

head(q6, 6)
## # A tibble: 6 × 6
##   movie_title       release_year Genre     Profitability `Rotten Tomatoes %`
##   <chr>                    <dbl> <chr>             <dbl>               <dbl>
## 1 WALL-E                    2008 Animation          2.90                  96
## 2 Midnight in Paris         2011 Romence            8.74                  93
## 3 Enchanted                 2007 Comedy             4.01                  93
## 4 Knocked Up                2007 Comedy             6.64                  91
## 5 Waitress                  2007 Romance           11.1                   89
## 6 A Serious Man             2009 Drama              4.38                  89
## # ℹ 1 more variable: Profitability_millions <dbl>

Question 7: Interpretation

From the resulting data, are the best movies the most popular?

Not necessarily. While the dataset shows movies with very high Rotten Tomatoes scores, profitability varies across those movies. This suggests that strong critical ratings (“best”) do not always translate to the highest profitability (“most popular”).

Extra Credit: Summary by Genre

extra <- q6 %>%
  group_by(Genre) %>%
  summarize(
    avg_rating = mean(`Rotten Tomatoes %`, na.rm = TRUE),
    avg_profitability_millions = mean(Profitability_millions, na.rm = TRUE),
    n_movies = n()
  ) %>%
  arrange(desc(avg_rating))

head(extra, 6)
## # A tibble: 6 × 4
##   Genre     avg_rating avg_profitability_millions n_movies
##   <chr>          <dbl>                      <dbl>    <int>
## 1 Romence         93                   0.00000874        1
## 2 Animation       92.5                 0.00000213        2
## 3 Comedy          89.3                 0.00000504        3
## 4 Romance         87                   0.00000554        2
## 5 comedy          87                   0.00000810        1
## 6 Drama           85.7                 0.00000220        3