logo

Actividad 1:

Estudie y describa las principales funciones disponibles de las bibliotecas dplyr y tidyr.

1.1 Librería dplyr

La librería dplyr, corresponde a un conjunto de funciones que permite el manejo y la manipulación de datos, de las cuales se destacan:

  • Select: Función que selecciona un conjunto de columnas específicas.
  • Filter: Filtra las filas de conjunto de filas según una o varias condiciones lógicas específicas.
  • Arrange: Función que permite ordenar una los datos basado en uno o más variables.
  • Mutate: Permite crear nuevas columnas o variables, o modifica también aquellas que ya existen.
  • Rename: Función que renombra variables/columnas en una data frame.
  • Summarise: Permite generar resúmenes estadísticos de diferentes variables en el data frame.

A continuación se presenta el uso de las funciones de la librería dplyr, en donde se selecciona los datos a partir de columnas específicas (Puntuación, País, Año, Género, Nombre y Director). Para que dicha función se use correctamente, las variables/columnas, debieron ser cambiadas a un tipo de datos (Integer,Double, Character), adicionalmente fueron renombrados, mediante el uso de la función Mutate Luego de eso se hace uso de la función Filter, en donde se selecciona del total de datos con ciertos parámetros. En ese caso se está filtrado, el listado de películas cuyo Score(puntuación), sea mayor a 8 y que provengan del país de Japón. Para que finalmente, los datos seleccionados se ordenen de mayor a menor a partir de la variable Puntuación, tal como muestra la tabla. Adicionalmente se calcula tiempo promedio de lo que duran las películas Japoneas que posee una puntación mayor o igual a 8

library(knitr)            
library(kableExtra)
library(dplyr)
library(readr)
library(htmltools)

DatosMovie <- read_csv('./movies.csv', show_col_types = FALSE)
columna1 <- DatosMovie$score
columna2 <- DatosMovie$country
columna3 <- DatosMovie$year
columna4 <- DatosMovie$genre
columna5 <- DatosMovie$name
columna6 <- DatosMovie$director
columna7 <- DatosMovie$runtime

#Se cambia el valor de la columna con un tipo de dato
DatosMovie <-mutate(DatosMovie, columna1 = as.double(columna1),
                    Puntuación = columna1)
DatosMovie <-mutate(DatosMovie, columna2 = as.character(columna2),
                    País = columna2)
DatosMovie <-mutate(DatosMovie, columna3 = as.integer(columna3),
                    Año = columna3)
DatosMovie <-mutate(DatosMovie, columna4 = as.character(columna4),
                    Género = columna4)
DatosMovie <-mutate(DatosMovie, columna5 = as.character(columna5),
                    Nombre = columna5)
DatosMovie <-mutate(DatosMovie, columna6 = as.character(columna6),
                    Director = columna6)
DatosMovie <-mutate(DatosMovie, columna7 = as.integer(columna7),
                    Duración = columna7)

#Se selecciona los datos
DatosNuevos <- select(DatosMovie, Puntuación, País, Año, Género, Nombre, Director, Duración)
DatosSeleccionados <- as.data.frame(DatosNuevos)

#Se filtra datos por el puntuación >= a 8 y por el país Japón
DatosFiltrados <- filter(DatosSeleccionados, columna1 >=8, columna2 == "Japan")


#Ordenar los datos de mayor a menor segun su puntiación
DatosOrdenados <- arrange(DatosFiltrados,desc(Puntuación))

#Calcular el promedio que tienen las películas japonesas mayores a 8 de puntuación
PromedioHoras <- summarise(DatosOrdenados, PromedioTiempo = mean(Duración))

DatosTabla <- kable(DatosOrdenados)

DatosTablaEstilizada <- kable_styling(DatosTabla, bootstrap_options = c("striped","border","hover"),
  full_width = TRUE)
DatosTablaEstilizada
Puntuación País Año Género Nombre Director Duración
8.6 Japan 2001 Animation Spirited Away Hayao Miyazaki 125
8.4 Japan 1997 Animation Princess Mononoke Hayao Miyazaki 134
8.4 Japan 2016 Animation Your Name. Makoto Shinkai 106
8.2 Japan 1985 Action Ran Akira Kurosawa 162
8.2 Japan 1988 Animation My Neighbor Totoro Hayao Miyazaki 86
8.2 Japan 2004 Animation Howl’s Moving Castle Hayao Miyazaki 119
8.1 Japan 1984 Animation Nausicaä of the Valley of the Wind Hayao Miyazaki 117
8.1 Japan 2004 Drama Nobody Knows Hirokazu Koreeda 141
8.1 Japan 2008 Drama Departures Yôjirô Takita 130
8.0 Japan 1985 Comedy Tampopo Jûzô Itami 114
8.0 Japan 1988 Animation Akira Katsuhiro Ôtomo 124
8.0 Japan 1995 Animation Ghost in the Shell Mamoru Oshii 83
8.0 Japan 1997 Animation Perfect Blue Satoshi Kon 81
8.0 Japan 2013 Animation The Tale of The Princess Kaguya Isao Takahata 137
8.0 Japan 2018 Animation I Want to Eat Your Pancreas Shin’ichirô Ushijima 109
PromedioHoras
##   PromedioTiempo
## 1       117.8667

1.2 Librería tidyr

La librería tidyr corresponde a un grupo de funciones las cuales pueden realizar transformaciones y reorganizar un conjunto de datos (dataframe), con el fin de poder estructurarlo. De esta librería se destacan las siguientes funciones:

  • Gather: Esta función se usa para convertir datos de formato “wide” a formato “long”, para poder reunir múltiples columnas en una columna de valores y crear una columna adicional para almacenar los nombres originales de las columnas.
  • Spread: Esta función es contraria a Gather, y se usa para convertir datos de formato “long” a formato “wide”. Permitiendo distribuir los valores de una columna en varias columnas, utilizando otra columna para determinar los nombres de las nuevas columnas.
  • Separate: Se usa para separar una columna en múltiples columnas utilizando un delimitador o patrón específico. .
  • Unite: Se usa para combinar múltiples columnas en una sola columna, utilizando un separador específico.
library(tidyr)
library(knitr)            
library(kableExtra)
library(dplyr)
library(readr)
library(htmltools)

DatosSeleccionados <- as.data.frame(DatosNuevos)

# Aplicar gather() para convertir de formato wide a long
DatosModoLong <- gather(DatosOrdenados, key = "AÑO", value = "Valor", -País)

DatosTabla <- kable(DatosModoLong)

DatosTablaEstilizada <- kable_styling(DatosTabla, bootstrap_options = c("striped","border","hover"),
  full_width = TRUE)
#DatosTablaEstilizada

Actividad 2:

Revise la documentación oficial de la biblioteca plotly para R. Señale otros tres tipos de gráficos que podrían ser utilizados para caracterizar la frecuencia de aparición de una variable en una muestra o población.

Aca va el desarrollo de la actividad 2 …

Actividad 3:

Efectuar un estadístico descriptivo utilizando un conjunto de datos de su elección. Para esto trabaje en pareja y siga los siguientes pasos:

  1. Selección del conjunto de datos. Elija un conjunto de datos apropiado para el análisis estadístico. Puede ser de una fuente confiable o generarlo usted mismo, dependiendo de su preferencia y objetivos.

  2. Preparación de los datos. Realice una limpieza y preparación inicial de los datos. Esto implica eliminar valores atípicos, manejar valores faltantes, transformar variables si es necesario y organizar los datos en un formato adecuado para el análisis.

  3. Exploración de los datos. Realice una exploración inicial de los datos para comprender su estructura y características. Esto puede incluir la descripción de variables, cálculo de estadísticas descriptivas, creación de gráficos y visualizaciones.

  4. Análisis estadístico descriptivo. Realice un análisis estadístico descriptivo más detallado de los datos. Esto puede involucrar la aplicación de técnicas como medidas de tendencia central, dispersión, distribución de frecuencias, entre otros, según sea apropiado para su conjunto de datos y objetivos. Contextualice sus respuestas para el problema.

3.0 Preparación del ambiente

Preparación del ambiente

library(knitr)
library(kableExtra)
library(tidyverse)
library(skimr)

library("ggplot2", warn.conflicts = FALSE) 
library("plotly", warn.conflicts = FALSE) 
library("scales")
library(readr)
library("dplyr", warn.conflicts = FALSE)

options(kable_styling_bootstrap_options = c("striped", "hover", "border"),
        full_width = F,
        font_size = 12,
        position = "left")

3.1 Selección del conjunto de datos

Para el desarrollo de esta actividad se ha escogido el conjunto de datos movie industry obtenido del sitio web Kaggle. Este conjunto de datos consta de 7668 películas de diferentes géneros y estrenadas en diferentes años a lo largo de 3 décadas, 220 películas por año desde el 1986 hasta el 2016 para ser específicos. Además del año de estreno y el género al que pertenece cada película, el conjunto de datos también contempla datos de interés como el director, puntaje de evaluación de usuarios IMDb, compañía de producción, país de origen, entre otros datos. La siguiente tabla detalla la clasificación de variables presentes en el conjunto de datos movie industry:

N Variable Descripción Tipo.de.Variable
1 Nombre Nombre de la película Cualitativa nominal-politómica
2 Raiting Público hacia el que esta dirigido la pelicula, según el sistema de raitings estipulado por la MPAA (G: General, PG: Parental Guidance, R: Restricted y X: Adult Cualitativa nominal-politómica
3 Género Género de la película Cualitativa nominal-politómica
4 Año Año de estreno de la película Cuantitativa intervalo-discreta
5 Fecha estreno Fecha estreno de la película Cuantitativa intervalo-discreta
6 Puntuación Calificación de la película según usuarios de IMDb (de 0 a 10) Cuantitativa ratio-discreta
7 Votaciones Cantidad de usuarios que votaron a través de IMDb Cuantitativa ratio-discreta
8 Director Director de la película Cualitativa nominal-politómica
9 Escritor Escritor de la película Cualitativa nominal-politómica
10 Estrella Actor/Actriz destacado de la película Cualitativa nominal-politómica
11 País País de origen de la película Cualitativa nominal-politómica
12 Presupuesto Presupuesto de la película en USD Cuantitativa ratio-discreta
13 Recaudación Ingresos recaudados por la película en USD Cuantitativa ratio-discreta
14 Compañia (producción) Compañía encargada de la producción de la película Cualitativa nominal-politómica
15 Duración Duración de la película en minutos Cuantitativa ratio-discreta

3.2 Preparación de los datos

Primera inspección de los datos

movies_dataset <- read_csv('./movies.csv')
glimpse(movies_dataset)
## Rows: 7,668
## Columns: 15
## $ name     <chr> "The Shining", "The Blue Lagoon", "Star Wars: Episode V - The…
## $ rating   <chr> "R", "R", "PG", "PG", "R", "R", "R", "R", "PG", "R", "PG", "P…
## $ genre    <chr> "Drama", "Adventure", "Action", "Comedy", "Comedy", "Horror",…
## $ year     <dbl> 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1…
## $ released <chr> "June 13, 1980 (United States)", "July 2, 1980 (United States…
## $ score    <dbl> 8.4, 5.8, 8.7, 7.7, 7.3, 6.4, 7.9, 8.2, 6.8, 7.0, 6.1, 7.3, 5…
## $ votes    <dbl> 927000, 65000, 1200000, 221000, 108000, 123000, 188000, 33000…
## $ director <chr> "Stanley Kubrick", "Randal Kleiser", "Irvin Kershner", "Jim A…
## $ writer   <chr> "Stephen King", "Henry De Vere Stacpoole", "Leigh Brackett", …
## $ star     <chr> "Jack Nicholson", "Brooke Shields", "Mark Hamill", "Robert Ha…
## $ country  <chr> "United Kingdom", "United States", "United States", "United S…
## $ budget   <dbl> 1.9e+07, 4.5e+06, 1.8e+07, 3.5e+06, 6.0e+06, 5.5e+05, 2.7e+07…
## $ gross    <dbl> 46998772, 58853106, 538375067, 83453539, 39846344, 39754601, …
## $ company  <chr> "Warner Bros.", "Columbia Pictures", "Lucasfilm", "Paramount …
## $ runtime  <dbl> 146, 104, 124, 88, 98, 95, 133, 129, 127, 100, 116, 109, 114,…

Se observan 7668 registros en el dataset, con 15 columnas distintas.

Se listan los primeros 5 registros:

kable( 
  head(movies_dataset, 5), 
  format = "html",
  ) %>% 
  kable_styling()
name rating genre year released score votes director writer star country budget gross company runtime
The Shining R Drama 1980 June 13, 1980 (United States) 8.4 927000 Stanley Kubrick Stephen King Jack Nicholson United Kingdom 1.9e+07 46998772 Warner Bros.  146
The Blue Lagoon R Adventure 1980 July 2, 1980 (United States) 5.8 65000 Randal Kleiser Henry De Vere Stacpoole Brooke Shields United States 4.5e+06 58853106 Columbia Pictures 104
Star Wars: Episode V - The Empire Strikes Back PG Action 1980 June 20, 1980 (United States) 8.7 1200000 Irvin Kershner Leigh Brackett Mark Hamill United States 1.8e+07 538375067 Lucasfilm 124
Airplane! PG Comedy 1980 July 2, 1980 (United States) 7.7 221000 Jim Abrahams Jim Abrahams Robert Hays United States 3.5e+06 83453539 Paramount Pictures 88
Caddyshack R Comedy 1980 July 25, 1980 (United States) 7.3 108000 Harold Ramis Brian Doyle-Murray Chevy Chase United States 6.0e+06 39846344 Orion Pictures 98

Se buscan valores repetidos:

nrow(movies_dataset)
## [1] 7668
nrow(unique(movies_dataset))
## [1] 7668

Se observa que los datos no contienen registros repetidos.

Inspección de datos predidos:

skim_without_charts(movies_dataset)
Data summary
Name movies_dataset
Number of rows 7668
Number of columns 15
_______________________
Column type frequency:
character 9
numeric 6
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
name 0 1.00 1 83 0 7512 0
rating 77 0.99 1 9 0 12 0
genre 0 1.00 5 9 0 19 0
released 2 1.00 11 45 0 3414 0
director 0 1.00 3 32 0 2949 0
writer 3 1.00 3 32 0 4535 0
star 1 1.00 3 27 0 2814 0
country 3 1.00 4 30 0 59 0
company 17 1.00 2 63 0 2385 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100
year 0 1.00 2000.41 11.15 1980.0 1991.0 2000.0 2010.0 2020.0
score 3 1.00 6.39 0.97 1.9 5.8 6.5 7.1 9.3
votes 3 1.00 88108.50 163323.76 7.0 9100.0 33000.0 93000.0 2400000.0
budget 2171 0.72 35589876.19 41457296.60 3000.0 10000000.0 20500000.0 45000000.0 356000000.0
gross 189 0.98 78500541.02 165725124.32 309.0 4532055.5 20205757.0 76016691.5 2847246203.0
runtime 4 1.00 107.26 18.58 55.0 95.0 104.0 116.0 366.0


Datos no numéricos perdidos:

  • Se obsevan 77 registros de raiting perdidos.
  • Se observan 2 registros de fecha de estreno perdidos.
  • Se observan 3 registros de escritor perdidos.
  • Se observan 1 registro de estrella perdido.
  • Se observan 3 registros de pais perdidos.
  • Se observan 17 registros de compañia perdidos.

Datos numéricos perdidos:

  • Se obsevan 3 registros de puntuacion perdidos.
  • Se observan 3 registros de votaciones perdidos.
  • Se observan 2171 registros de presupuesto perdidos.
  • Se observan 189 registros de recaudacion perdidos.
  • Se observan 4 registros de duracion perdidos.

Se limpian datos perdidos:

movies_df <- drop_na(movies_dataset)

skim_without_charts(movies_df)
Data summary
Name movies_df
Number of rows 5421
Number of columns 15
_______________________
Column type frequency:
character 9
numeric 6
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
name 0 1 1 83 0 5336 0
rating 0 1 1 9 0 10 0
genre 0 1 5 9 0 15 0
released 0 1 11 40 0 2560 0
director 0 1 3 32 0 2063 0
writer 0 1 3 32 0 3205 0
star 0 1 3 25 0 1845 0
country 0 1 4 30 0 50 0
company 0 1 3 63 0 1475 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100
year 0 1 2001.66 10.54 1980.0 1993.0 2002.0 2011.0 2020.0
score 0 1 6.39 0.96 1.9 5.8 6.5 7.1 9.3
votes 0 1 115066.13 184407.26 195.0 19000.0 52000.0 129000.0 2400000.0
budget 0 1 36009170.47 41573373.99 6000.0 10000000.0 21800000.0 45000000.0 356000000.0
gross 0 1 103229653.33 187302717.15 309.0 10736401.0 36869414.0 112462508.0 2847246203.0
runtime 0 1 108.15 18.12 63.0 95.0 105.0 118.0 271.0


Se observan 5421 registros tras limpiar los datos.

Se elimina el país de la fecha de estreno:

movies_df <- movies_df %>% 
  mutate(temp = strsplit(released, split = "\\("))
movies_df <- cbind(movies_df, t(data.frame(movies_df$temp)))
names(movies_df)[names(movies_df) == "1"] <- "release_date"
names(movies_df)[names(movies_df) == "2"] <- "release_country"
rownames(movies_df) <- c(1:nrow(movies_df))
movies_df <- movies_df[, !names(movies_df) == "temp"]
movies_df$release_country <- str_sub(movies_df$release_country, 1, nchar(movies_df$release_country)-1)

kable( 
  head(movies_df), 
  format = "html",
  ) %>% 
  kable_styling()
name rating genre year released score votes director writer star country budget gross company runtime release_date release_country
The Shining R Drama 1980 June 13, 1980 (United States) 8.4 927000 Stanley Kubrick Stephen King Jack Nicholson United Kingdom 1.9e+07 46998772 Warner Bros.  146 June 13, 1980 United States
The Blue Lagoon R Adventure 1980 July 2, 1980 (United States) 5.8 65000 Randal Kleiser Henry De Vere Stacpoole Brooke Shields United States 4.5e+06 58853106 Columbia Pictures 104 July 2, 1980 United States
Star Wars: Episode V - The Empire Strikes Back PG Action 1980 June 20, 1980 (United States) 8.7 1200000 Irvin Kershner Leigh Brackett Mark Hamill United States 1.8e+07 538375067 Lucasfilm 124 June 20, 1980 United States
Airplane! PG Comedy 1980 July 2, 1980 (United States) 7.7 221000 Jim Abrahams Jim Abrahams Robert Hays United States 3.5e+06 83453539 Paramount Pictures 88 July 2, 1980 United States
Caddyshack R Comedy 1980 July 25, 1980 (United States) 7.3 108000 Harold Ramis Brian Doyle-Murray Chevy Chase United States 6.0e+06 39846344 Orion Pictures 98 July 25, 1980 United States
Friday the 13th R Horror 1980 May 9, 1980 (United States) 6.4 123000 Sean S. Cunningham Victor Miller Betsy Palmer United States 5.5e+05 39754601 Paramount Pictures 95 May 9, 1980 United States

Se estandariza formato de la fecha de estreno:

movies_df$release_date <- gsub(",", "", movies_df$release_date)
movies_df$release_date <- as.Date(movies_df$release_date, "%B %d %Y")

kable( 
  head(movies_df), 
  format = "html",
  ) %>% 
  kable_styling()
name rating genre year released score votes director writer star country budget gross company runtime release_date release_country
The Shining R Drama 1980 June 13, 1980 (United States) 8.4 927000 Stanley Kubrick Stephen King Jack Nicholson United Kingdom 1.9e+07 46998772 Warner Bros.  146 NA United States
The Blue Lagoon R Adventure 1980 July 2, 1980 (United States) 5.8 65000 Randal Kleiser Henry De Vere Stacpoole Brooke Shields United States 4.5e+06 58853106 Columbia Pictures 104 NA United States
Star Wars: Episode V - The Empire Strikes Back PG Action 1980 June 20, 1980 (United States) 8.7 1200000 Irvin Kershner Leigh Brackett Mark Hamill United States 1.8e+07 538375067 Lucasfilm 124 NA United States
Airplane! PG Comedy 1980 July 2, 1980 (United States) 7.7 221000 Jim Abrahams Jim Abrahams Robert Hays United States 3.5e+06 83453539 Paramount Pictures 88 NA United States
Caddyshack R Comedy 1980 July 25, 1980 (United States) 7.3 108000 Harold Ramis Brian Doyle-Murray Chevy Chase United States 6.0e+06 39846344 Orion Pictures 98 NA United States
Friday the 13th R Horror 1980 May 9, 1980 (United States) 6.4 123000 Sean S. Cunningham Victor Miller Betsy Palmer United States 5.5e+05 39754601 Paramount Pictures 95 NA United States

Se almacenan los datos en una variable dataframe lista para trabajar:

movies <- movies_df

glimpse(movies)
## Rows: 5,421
## Columns: 17
## $ name            <chr> "The Shining", "The Blue Lagoon", "Star Wars: Episode …
## $ rating          <chr> "R", "R", "PG", "PG", "R", "R", "R", "R", "PG", "R", "…
## $ genre           <chr> "Drama", "Adventure", "Action", "Comedy", "Comedy", "H…
## $ year            <dbl> 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, …
## $ released        <chr> "June 13, 1980 (United States)", "July 2, 1980 (United…
## $ score           <dbl> 8.4, 5.8, 8.7, 7.7, 7.3, 6.4, 7.9, 8.2, 6.8, 7.0, 6.1,…
## $ votes           <dbl> 927000, 65000, 1200000, 221000, 108000, 123000, 188000…
## $ director        <chr> "Stanley Kubrick", "Randal Kleiser", "Irvin Kershner",…
## $ writer          <chr> "Stephen King", "Henry De Vere Stacpoole", "Leigh Brac…
## $ star            <chr> "Jack Nicholson", "Brooke Shields", "Mark Hamill", "Ro…
## $ country         <chr> "United Kingdom", "United States", "United States", "U…
## $ budget          <dbl> 1.9e+07, 4.5e+06, 1.8e+07, 3.5e+06, 6.0e+06, 5.5e+05, …
## $ gross           <dbl> 46998772, 58853106, 538375067, 83453539, 39846344, 397…
## $ company         <chr> "Warner Bros.", "Columbia Pictures", "Lucasfilm", "Par…
## $ runtime         <dbl> 146, 104, 124, 88, 98, 95, 133, 129, 127, 100, 116, 10…
## $ release_date    <date> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ release_country <chr> "United States", "United States", "United States", "Un…

Se observan 5421 registros limpios y trabajables , además se añadieron 2 columnas nuevas: release_date que contiene la fecha de estreno estandarizada según formato ISO y release_country que contiene el país relacionado a la fecha de estreno (el cual puede ser diferente al país de origen de la película).

3.3 Exploracion de los datos

3.4 Análisis estadístico descriptivo

Para efectos de este estudio se analizan las ganacias obtenidas por las películas, ya que se tiene el presupuesto y recaudación de cada película se puede obtener la ganancia de la forma:
profit = recaudacion - presupuesto

Así se puede realizar un análisis de como se distribuyen las ganancias en función de los diferentes géneros, directores, países, etc.

Se agrega la columna profit (ganancia):

movies$profit <- movies$gross - movies$budget

summary(movies$profit)
##       Min.    1st Qu.     Median       Mean    3rd Qu.       Max. 
## -158031147   -3189887   13851521   67220483   70258201 2610246203
num_bins = 67220483 # Ajustado al promedio de ganancias

g = ggplot(movies, aes(x = profit)) +
  geom_histogram(binwidth = num_bins, fill = "burlywood1",color="burlywood1",alpha=0.6) +
  labs(title = "Ditribución de Ganancias", x = "Ganancias USD", y = "Frecuencia")
g = g+theme_bw()
g = g + scale_x_continuous(label = scales::comma)

ggplotly(g)

Se observa que la mayoría de películas tiene ganancias cercana a 0 y que muy pocas películas tienen una alta ganancia.

ggplot(data = movies) +
  geom_point(mapping = aes(x = genre, y = profit)) +
  theme(axis.text.x = element_text(angle = 40)) +
  labs(title = "Género Vs Ganancias")

Se observa que los géneros con mayor ganancia son: Acción y Drama

Se muestra el top 10 de directores con mayor ganancia

top_directors <- movies %>% group_by(director) %>% 
  summarise(sum_profit=sum(profit),
            .groups = 'drop')

top_directors = top_directors [order(top_directors$sum_profit, decreasing = T),]

kable( 
  head(top_directors, 10), 
  format = "html",
  ) %>% 
  kable_styling()
director sum_profit
Steven Spielberg 7737549370
Anthony Russo 5693248984
James Cameron 5499188578
Peter Jackson 5372045788
Michael Bay 4773692798
David Yates 3959548416
Christopher Nolan 3843541948
J.J. Abrams 3599375464
Jon Favreau 3312675953
Chris Columbus 3262413348

Se muestra el top 10 de géneros con mayor ganancia

top_genres <- movies %>% group_by(genre) %>% 
  summarise(sum_profit=sum(profit),
            .groups = 'drop')

top_genres = top_genres[order(top_genres$sum_profit, decreasing = T),]

kable( 
  head(top_genres, 10), 
  format = "html",
  ) %>% 
  kable_styling()
genre sum_profit
Action 155019855699
Animation 56724339110
Comedy 54402469405
Drama 32040824782
Adventure 28550151908
Biography 11181571528
Crime 10999106082
Horror 10888988032
Family 1869832587
Mystery 1462191466

Se muestra el top 10 de países con mayor ganancia

top_countries <- movies %>% group_by(country) %>% 
  summarise(sum_profit=sum(profit),
            .groups = 'drop')

top_countries = top_countries[order(top_countries$sum_profit, decreasing = T),]

kable( 
  head(top_countries, 10), 
  format = "html",
  ) %>% 
  kable_styling()
country sum_profit
United States 309334670954
United Kingdom 28919682186
New Zealand 5158254563
China 4459518953
France 3264033115
Canada 3192381085
Germany 2343333409
Japan 1856114085
Australia 1719354264
Hong Kong 758793275