#install packages
library(dslabs)
library(readr)
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(viridisLite)
library(RColorBrewer)
##VIDEOJUEGOS
Online_game.csv<- read.csv("Online_game.csv")
##piping%>%
# Cargar librerías necesarias
library(dplyr)
library(ggplot2)
library(RColorBrewer)
library(tidyr)
# Cargar el dataset
videojuegos <- read.csv("Online_game.csv")
# Visualizar las 10 compañías con más juegos
companias_con_mas_juegos <- videojuegos %>%
group_by(Publisher) %>%
summarise(total_juegos = n()) %>%
arrange(desc(total_juegos)) %>%
slice_head(n = 10)
ggplot(companias_con_mas_juegos, aes(x = reorder(Publisher, -total_juegos), y = total_juegos)) +
geom_bar(stat = "identity", fill = "steelblue") +
coord_flip() +
labs(title = "Top 10 Compañías con Más Juegos", x = "Compañía", y = "Número de Juegos") +
theme_minimal()
# Mejorar la visualización de juegos con peores ventas
juegos_peores <- videojuegos %>%
group_by(Publisher) %>%
filter(Global_Sales == min(Global_Sales)) %>%
arrange(Global_Sales)
ggplot(juegos_peores, aes(x = reorder(Name, -Global_Sales), y = Global_Sales, fill = Publisher)) +
geom_col() +
coord_flip() +
labs(title = "Juegos con Peores Ventas por Compañía", x = "Juego", y = "Ventas (millones)") +
theme_minimal()
# Gráfico de barras de las plataformas más comunes
tabla_platform <- table(videojuegos$Platform)
tabla_platform <- as.data.frame(tabla_platform)
top_8_platforms <- tabla_platform %>%
arrange(desc(Freq)) %>%
slice_head(n = 8)
ggplot(top_8_platforms, aes(x = reorder(Var1, -Freq), y = Freq)) +
geom_bar(stat = "identity", fill = brewer.pal(8, "Set3")) +
labs(title = "Top 8 Plataformas con Más Juegos", x = "Plataforma", y = "Cantidad de Juegos") +
theme_minimal()
# Gráfico de torta de distribución de géneros
distribucion_genero <- videojuegos %>%
count(Genre) %>%
mutate(proporcion = n / sum(n) * 100) %>%
arrange(desc(proporcion))
ggplot(distribucion_genero, aes(x = "", y = proporcion, fill = Genre)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y") +
labs(title = "Distribución de Juegos por Género", y = "Proporción (%)") +
theme_minimal() +
theme(axis.text.x = element_blank())
# Boxplot de ventas globales por género
ggplot(videojuegos, aes(x = Genre, y = Global_Sales, fill = Genre)) +
geom_boxplot(outliers = FALSE) +
labs(title = "Distribución de Ventas Globales por Género", x = "Género", y = "Ventas Globales (millones)") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
# Crear un nuevo dataframe para la distribución de ventas por región
videojuegos_long <- videojuegos %>%
pivot_longer(cols = c("NA_Sales", "EU_Sales", "JP_Sales", "Other_Sales"), names_to = "Region", values_to = "Sales")
# Mejorar el histograma de ventas globales desglosado por región
ggplot(videojuegos_long, aes(x = Sales, fill = Region)) +
geom_histogram(binwidth = 1, position = "dodge", color = "black") +
labs(
title = "Distribución de Ventas por Región",
x = "Ventas por Región (millones)",
y = "Frecuencia"
) +
theme_minimal() +
scale_fill_brewer(palette = "Set3") +
theme(legend.position = "bottom")
# Distribución de ventas por región
ventas_por_region <- videojuegos %>%
summarise(
Ventas_NA = sum(NA_Sales, na.rm = TRUE),
Ventas_EU = sum(EU_Sales, na.rm = TRUE),
Ventas_JP = sum(JP_Sales, na.rm = TRUE),
Ventas_Otros = sum(Other_Sales, na.rm = TRUE)
)
ventas_por_region <- pivot_longer(ventas_por_region, cols = everything(), names_to = "region", values_to = "ventas")
ggplot(ventas_por_region, aes(x = region, y = ventas, fill = region)) +
geom_bar(stat = "identity") +
labs(title = "Distribución de Ventas por Región", x = "Región", y = "Ventas (millones)") +
theme_minimal()
# Boxplot de ventas globales por plataforma (más relevantes)
plataformas_relevantes <- videojuegos %>%
group_by(Platform) %>%
summarise(total_ventas = sum(Global_Sales, na.rm = TRUE)) %>%
arrange(desc(total_ventas)) %>%
mutate(rank = row_number()) %>%
filter(rank <= 5)
videojuegos_top <- videojuegos %>% filter(Platform %in% plataformas_relevantes$Platform)
ggplot(videojuegos_top, aes(x = Platform, y = Global_Sales, fill = Platform)) +
geom_boxplot(outliers = FALSE) +
labs(title = "Boxplot de Ventas Globales por Plataforma (Más Relevantes)", x = "Plataforma", y = "Ventas Globales (millones)") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Boxplot de ventas globales por plataforma (menos relevantes)
plataformas_low <- videojuegos %>%
group_by(Platform) %>%
summarise(total_ventas = sum(Global_Sales, na.rm = TRUE)) %>%
arrange(total_ventas) %>%
slice_head(n = 5)
videojuegos_low <- videojuegos %>% filter(Platform %in% plataformas_low$Platform)
ggplot(videojuegos_low, aes(x = Platform, y = Global_Sales, fill = Platform)) +
geom_boxplot(outliers = FALSE) +
labs(title = "Boxplot de Ventas Globales por Plataforma (Menos Relevantes)", x = "Plataforma", y = "Ventas Globales (millones)") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Estadísticas adicionales
# Media y mediana de ventas globales
mean_sales <- mean(videojuegos$Global_Sales, na.rm = TRUE)
median_sales <- median(videojuegos$Global_Sales, na.rm = TRUE)
cat("La media de ventas globales es:", mean_sales, "\n")
## La media de ventas globales es: 0.5374407
cat("La mediana de ventas globales es:", median_sales, "\n")
## La mediana de ventas globales es: 0.17
# Juego con mayores ventas
juego_mayores_ventas <- videojuegos %>%
filter(Global_Sales == max(Global_Sales)) %>%
select(Name, Publisher, Global_Sales)
cat("El juego con mayores ventas es:", juego_mayores_ventas$Name, "de", juego_mayores_ventas$Publisher, "con", juego_mayores_ventas$Global_Sales, "millones de unidades vendidas.\n")
## El juego con mayores ventas es: Wii Sports de Nintendo con 82.74 millones de unidades vendidas.