Estudie y describa las principales funciones disponibles de las bibliotecas dplyr y tidyr.
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:
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
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:
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
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 …
Efectuar un estadístico descriptivo utilizando un conjunto de datos de su elección. Para esto trabaje en pareja y siga los siguientes pasos:
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.
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.
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.
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.
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")
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 |
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)
| 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:
Datos numéricos perdidos:
Se limpian datos perdidos:
movies_df <- drop_na(movies_dataset)
skim_without_charts(movies_df)
| 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).
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 |