## 
## 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

Introducción

El universo de Star Wars es una de las mejores sagas cinematográficas, icónica, significativa, abarcando múltiples trilogías, personajes memorables y un trasfondo narrativo excelente. El conjunto de datos starwars, disponible en el paquete dplyr de R, ofrece una oportunidad para explorar este universo desde una perspectiva analítica. Este conjunto incluye información sobre 87 personajes, con variables como nombre, altura, peso, especie, género, planeta de origen, películas en las que aparecen, naves y vehículos pilotados. Este análisis, utiliza visualizaciones de datos para descubrir patrones en la representación, rasgos físicos y roles narrativos de los personajes, proporcionando una visión cuantitativa de la diversidad y dinámica de Star Wars.

Objetivos

General

Analizar las características físicas, demográficas y narrativas de los personajes del conjunto de datos starwars para identificar patrones que reflejen su representación y relevancia en la saga Star Wars.

Especificos

Determinar qué especies y personajes individuales tienen mayor presencia en las películas de Star Wars.

Identificar las especies con personajes más pesados y altos, destacando ejemplos representativos.

Explorar qué vehículos son más utilizados y quiénes son sus pilotos, conectando su uso con contextos narrativos.

Analizar la distribución de peso por género y especie, evaluando diferencias en la representación física.

Descripción de los datos

El conjunto de datos starwars, disponible en el paquete dplyr de R, contiene información sobre 87 personajes del universo ficticio de Star Wars. Este conjunto incluye características físicas como altura, peso y color de cabello, así como detalles sobre el año de nacimiento, género, especie y planeta de origen de cada personaje. Además, registra su participación en películas, vehículos y naves espaciales de la franquicia. Los datos son ideales para explorar patrones en las características de los personajes y sus relaciones dentro del universo de Star Wars.

Fuente de los datos:
El conjunto starwars forma parte del paquete dplyr, una biblioteca de R para la manipulación de datos. Según la documentación oficial, los datos provienen de SWAPI (Star Wars API, https://swapi.py4e.com/), una interfaz pública que recopila información de la franquicia Star Wars a partir de fuentes como wikis oficiales (por ejemplo, Wookieepedia). Los datos originales de SWAPI fueron revisados para mejorar las determinaciones de sexo y género de los personajes, y organizados en un formato de tibble para fines educativos en R. No se cita un artículo académico específico como fuente.

Tabla de resumen de variables:

Variable Descripción
name Nombre del personaje.
height Altura del personaje en centímetros (int).
mass Peso del personaje en kilogramos (double).
hair_color Color del cabello del personaje (chr).
skin_color Color de la piel del personaje (chr).
eye_color Color de los ojos del personaje (chr).
birth_year Año de nacimiento del personaje en años antes de la Batalla de Yavin, BBY (double).
sex Sexo biológico del personaje (chr: male, female, hermaphrodite, none, etc.).
gender Género del personaje (chr: masculine, feminine, etc.).
homeworld Planeta de origen del personaje (chr).
species Especie del personaje (chr: Human, Droid, Wookiee, etc.).
films Lista de películas en las que aparece el personaje.
vehicles Lista de vehículos que el personaje utiliza.
starships Lista de naves espaciales que el personaje pilota.

Visualizaciones de datos

data(starwars)
starwars[starwars$species== "Human", ]
## # A tibble: 39 × 14
##    name     height  mass hair_color skin_color eye_color birth_year sex   gender
##    <chr>     <int> <dbl> <chr>      <chr>      <chr>          <dbl> <chr> <chr> 
##  1 Luke Sk…    172    77 blond      fair       blue            19   male  mascu…
##  2 Darth V…    202   136 none       white      yellow          41.9 male  mascu…
##  3 Leia Or…    150    49 brown      light      brown           19   fema… femin…
##  4 Owen La…    178   120 brown, gr… light      blue            52   male  mascu…
##  5 Beru Wh…    165    75 brown      light      blue            47   fema… femin…
##  6 Biggs D…    183    84 black      light      brown           24   male  mascu…
##  7 Obi-Wan…    182    77 auburn, w… fair       blue-gray       57   male  mascu…
##  8 Anakin …    188    84 blond      fair       blue            41.9 male  mascu…
##  9 Wilhuff…    180    NA auburn, g… fair       blue            64   male  mascu…
## 10 Han Solo    180    80 brown      fair       brown           29   male  mascu…
## # ℹ 29 more rows
## # ℹ 5 more variables: homeworld <chr>, species <chr>, films <list>,
## #   vehicles <list>, starships <list>

Descripción: Podemos observar los elementos del conjunto de datos en donde la especie es humano

Personajes con más apariciones por especie

peliculas <- starwars %>%

  mutate(num_films = lengths(films)) %>%
  filter(!is.na(species), !is.na(name), num_films > 0)


peliculas_filtradas <- peliculas %>%
  filter(num_films >= 3)

ggplot(data = peliculas_filtradas, aes(x = species, y = num_films, color = species, label = name)) +
  geom_point(size = 3, alpha = 0.7, position = position_jitter(width = 0.2)) +
  geom_text_repel(size = 3, max.overlaps = Inf) +
  labs(title = "Personajes con más apariciones por especie",
       x = "Especie", y = "Número de películas") +
  theme_minimal() +
  theme(legend.position = "none", axis.text.x = element_text(angle = 45, hjust = 1))

Descripción: Este gráfico de dispersión muestra la relación entre la especie de un personaje (eje X) y el número de películas en las que aparece (eje Y). Cada punto representa un personaje individual, coloreado por especie y etiquetado con su nombre. Los puntos están ligeramente dispersos (position_jitter) para evitar superposiciones, y las etiquetas usan geom_text_repel para claridad.

Interpretación: La gráfica revela que las especies Human y Droid tienen los personajes con más apariciones, con nombres icónicos como Luke Skywalker, Obi-Wan Kenobi, C-3PO y R2-D2 apareciendo en 5-6 películas. La especie Wookiee también destaca con Chewbacca en 4 películas. Esto sugiere que los humanos y droides son centrales en la narrativa de Star Wars, posiblemente debido a su rol como héroes como Obi Wan y Luke, o compañeros constantes como R2-D2. Es interesante notar que especies con un solo representante, como Yoda’s species (Yoda, 5 películas), tienen una relevancia desproporcionada, reflejando su impacto narrativo.

Personajes más pesados por especie

peso_personajes <- starwars %>%
  filter(!is.na(mass), !is.na(species), !is.na(name), mass < 1000)

ggplot(data = peso_personajes, aes(x = species, y = mass, color = species, label = name)) +
  geom_point(size = 3, alpha = 0.7, position = position_jitter(width = 0.2)) +
  geom_text_repel(size = 3, max.overlaps = 20) +
  labs(title = "Personajes más pesados por especie",
       x = "Especie", y = "Peso (kg)") +
  theme_minimal() +
  theme(legend.position = "none", axis.text.x = element_text(angle = 45, hjust = 1))
## Warning: ggrepel: 16 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

Descripción: Este gráfico de dispersión muestra la relación entre la especie de un personaje (eje X) y su peso en kilogramos (eje Y). Cada punto representa un personaje, coloreado por especie y etiquetado con su nombre. Los puntos están dispersos para evitar superposiciones, y las etiquetas son claras gracias a geom_text_repel.

Interpretación: La gráfica revela que personajes como General Grievous (Kaleesh, 159 kg) y Darth Vader (Human, 136 kg) son los más pesados, mientras que personajes como Ratts Tyerell (Aleena, 15 kg) y Yoda (Yoda’s species, 17 kg) son los más ligeros. Especies como Wookiee (Chewbacca, 112kg) también destacan por su peso. Esto sugiere que ciertas especies, como Kaleesh o Wookiees, tienden a tener personajes físicamente imponentes, mientras que otras, como Aleena, son notablemente ligeras. La variedad de pesos en humanos (desde Darth Vader hasta Leia Organa) refleja su diversidad física en la saga.

Vehiculos y pilotos más utilizados

vehiculos <- starwars %>%
  mutate(vehicle_names = sapply(vehicles, function(x) paste(x, collapse = ", "))) %>%
  filter(!is.na(name), lengths(vehicles) > 0) %>%
  tidyr::separate_rows(vehicles, sep = ", ") %>%
  filter(vehicles != "") %>%
  group_by(vehicles) %>%
  summarise(users = paste(name, collapse = ", "), num_users = n()) %>%
  ungroup()

ggplot(data = vehiculos, aes(x = num_users, y = rep(1, length(num_users)), color = vehicles, label = paste(vehicles, ":", users))) +
  geom_point(size = 3, alpha = 0.7, position = position_jitter(height = 0.2)) +
  scale_x_continuous(breaks = seq(min(vehiculos$num_users), max(vehiculos$num_users), by = 1)) +
  geom_text_repel(size = 3, max.overlaps = 20) +
  labs(title = "Vehículos más utilizados y quiénes los usaron",
       x = "Número de personajes que usaron el vehículo", y = "") +
  theme_minimal() +
  theme(legend.position = "none", axis.text.y = element_blank(), axis.ticks.y = element_blank())

Descripción: Este gráfico de dispersión muestra el número de personajes que usaron cada vehículo (eje X), con un eje Y constante para visualización. Cada punto representa un vehículo, coloreado por vehículo y etiquetado con el nombre del vehículo y sus usuarios. La escala del eje X está ajustada para mostrar enteros, y las etiquetas usan geom_text_repel.

Interpretación: La gráfica destaca que el Snowspeeder es el vehículo más compartido, usado por Luke Skywalker y Wedge Antilles, seguido por el Tribubble bongo (Obi-Wan Kenobi, Qui-Gon Jinn). La mayoría de los vehículos, como el Zephyr-G swoop bike (Anakin Skywalker) o la Imperial Speeder Bike (Leia Organa), tienen un solo usuario. Esto sugiere que los vehículos en Star Wars suelen estar asociados a personajes específicos, con excepciones como el Snowspeeder, que refleja escenas de acción compartidas.

Género y peso por especie

genero_masa <- starwars %>%
  filter(!is.na(species), !is.na(gender), !is.na(mass), !is.na(name), mass < 1000) %>%
  group_by(species, gender) %>%
  mutate(rank_mass = rank(-mass)) %>%
  filter(rank_mass <= 2 | rank_mass >= n() - 1) %>%
  ungroup()

ggplot(data = genero_masa, aes(x = species, y = mass, color = gender, label = name)) +
  geom_point(size = 3, alpha = 0.7, position = position_jitter(width = 0.2)) +
  geom_text_repel(size = 3, max.overlaps = 20) +
  labs(title = "Género y peso por especie (personajes más/menos pesados)",
       x = "Especie", y = "Peso (kg)", color = "Género") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Descripción: Este gráfico de dispersión muestra el peso de los personajes (eje Y) por especie (eje X), coloreado por género (masculine, feminine) y etiquetado con nombres. Se incluyen los dos personajes más pesados y los dos menos pesados por cada combinación de especie y género, con dispersión para claridad.

Interpretación: La gráfica muestra que los personajes masculinos, como Darth Vader (Human, 136 kg) y Chewbacca (Wookiee, 112kg), tienden a ser más pesados, mientras que personajes femeninos como Leia Organa (Human, 49 kg) son más ligeros. Especies como Yoda’s species (Yoda, 17 kg, masculino) tienen pesos bajos. La distribución sugiere que los humanos tienen una amplia gama de pesos por género, mientras que otras especies (como Wookiees) son más uniformes. Esto refleja la diversidad física en Star Wars, donde el género puede influir en la representación de rasgos físicos, especialmente en humanos.

Personajes por especie en determinada pelicula (The empire Strikes Back)

starwars_empire <- starwars %>%
  mutate(in_empire = sapply(films, function(x) any(grepl("The Empire Strikes Back", x)))) %>%
  filter(in_empire, !is.na(species), !is.na(name)) %>%
  group_by(species) %>%
  summarise(num_characters = n(), characters = paste(name, collapse = ", ")) %>%
  filter(num_characters > 0)

ggplot(data = starwars_empire, aes(x = reorder(species, -num_characters), y = num_characters, fill = species)) +
  geom_bar(stat = "identity", color = "black") +
  geom_text(aes(label = characters), vjust = -0.5, size = 3) +
  labs(title = "Personajes por especie en El Imperio Contraataca",
       x = "Especie", y = "Número de personajes", fill = "Especie") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1), legend.position = "none")

Descripción: Este diagrama de barras muestra el número de personajes por especie (eje X) en Star Wars: Episodio V - El Imperio Contraataca (eje Y). Cada barra está coloreada por especie y etiquetada con los nombres de los personajes.

Interpretación: La especie Human domina con personajes como Obi-Wan Kenobi, Han Solo, Leia Organa, y Lando Calrissian, seguida por Droid (C-3PO, R2-D2, IG-88). Especies como Wookiee (Chewbacca), Trandoshan (Bossk), y Yoda’s species (Yoda) tienen un solo representante. Esto refleja la centralidad de los humanos en la narrativa de El Imperio Contraataca, con droides como compañeros clave y especies únicas como Yoda aportando un impacto significativo pese a su baja representación.

Especies con Personajes más altos en promedio

altura_especies <- starwars %>%
  filter(!is.na(height), !is.na(species), !is.na(name)) %>%
  group_by(species) %>%
  summarise(
    avg_height = mean(height, na.rm = TRUE),
    tallest = name[which.max(height)],
    tallest_height = max(height, na.rm = TRUE)
  ) %>%
  filter(avg_height > 0) %>%
  arrange(desc(avg_height)) %>%
  slice_head(n = 5)

ggplot(data = altura_especies, aes(x = reorder(species, -avg_height), y = avg_height, fill = species)) +
  geom_bar(stat = "identity", color = "black") +
  geom_text(aes(label = paste(tallest, "(", tallest_height, "cm)")), vjust = -0.5, size = 3) +
  labs(title = "Especies con personajes más altos (promedio)",
       x = "Especie", y = "Altura promedio (cm)", fill = "Especie") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1), legend.position = "none")

Descripción: Este diagrama de barras muestra las cinco especies con mayor altura promedio (eje Y) por especie (eje X). Cada barra está coloreada por especie y etiquetada con el nombre del personaje más alto y su altura.

Interpretación: La especie Quermian lidera con Yarael Poof (264 cm), seguida por Wookiee (Tarfful, 234 cm), Kaminoan, Kaleesh, y Gungan (Roos Tarpals). Esto sugiere que especies como Quermians y Wookiees son físicamente imponentes, mientras que otras, como Gungans, tienen representantes altos pero menos extremos. La altura de Yarael Poof destaca como un caso único, mientras que los Wookiees refuerzan su imagen robusta en Star Wars.

Personajes que más apariciones tienen por pelicula

nombre_pelicula <- starwars %>%
  filter(!is.na(name)) %>%
  mutate(num_films = lengths(films)) %>%
  select(name, num_films) %>%
  arrange(desc(num_films)) %>%
  slice_head(n = 15)

ggplot(data = nombre_pelicula, aes(x = reorder(name, -num_films), y = num_films, fill = name)) +
  geom_bar(stat = "identity", color = "black") +
  geom_text(aes(label = num_films), vjust = -0.5, size = 3) +
  labs(title = "Personajes que más aparecen en películas",
       x = "Personaje", y = "Número de películas", fill = "Personaje") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1), legend.position = "none")

Descripción: Este diagrama de barras muestra los 15 personajes de Star Wars con mayor número de apariciones en películas. El eje X lista los nombres de los personajes, ordenados de mayor a menor número de películas (eje Y). Cada barra está coloreada por personaje y etiquetada con el número exacto de películas en las que aparece.

Interpretación: La gráfica destaca a R2-D2 como el personaje con más apariciones (7 películas), seguido por C-3PO y Obi-Wan Kenobi (6 películas cada uno). Personajes como Luke Skywalker, Leia Organa, Chewbacca, Yoda y Palpatine comparten 5 apariciones, mientras que Darth Vader y Han Solo tienen 4. Es notable que los droides (R2-D2, C-3PO) superen a los humanos en apariciones, lo que puede reflejar su rol como conectores narrativos a lo largo de las trilogías. La presencia de personajes como Wedge Antilles (3 películas) en el ranking sugiere que incluso personajes secundarios pueden tener una representación significativa. Este análisis resalta la importancia de los personajes recurrentes en la cohesión de la saga Star Wars.

Conclusiones

El análisis del conjunto de datos starwars revela patrones significativos sobre la representación y relevancia de los personajes en la saga Star Wars como el dominio de humanos y droides, en peliculas.

Especies como Kaleesh, Wookiee, y Quermian destacan por su peso y altura, reflejando su diseño imponente. Los humanos muestran una amplia variedad de pesos, lo que conecta con sus diversos roles narrativos.

Vehículos como el Snowspeeder son compartidos en distintas escenas, mientras que la mayoría, como el Zephyr-G swoop bike, están ligados a personajes específicos.

Los personajes masculinos tienden a ser más pesados, mientras que los femeninos son más ligeros. Los humanos muestran mayor variabilidad de peso por género.