Integrantes:

Manipulacion de dataframe

Funciones, Modulos y Librerias principales en R

R es un lenguaje de programación muy utilizado para análisis de datos y estadística gracias a su versatilidad. La razón principal de esto es la gran cantidad de funciones, módulos y librerías que tiene, las cuales permiten completar una amplia gama de tareas analíticas.

R ya incluye un conjunto fundamental de funciones estadísticas para realizar cálculos, generar visualizaciones y manipular datos. Las funciones básicas para calcular medias, desviaciones estándar, generar números aleatorios y graficar distribuciones de probabilidad son algunas de las más importantes.

Sin embargo, la instalación de paquetes especializados según la necesidad maximiza el verdadero potencial de R. Por ejemplo, paquetes populares como caret para modelos de aprendizaje automático, ggplot2para visualización y dplyr para manipulación de datos. Además, hay paquetes para requisitos específicos, como fechas (lubridate), texto (stringr), lectura/escritura de archivos (readr) y así sucesivamente.

En resumen, R tiene una amplia gama de funciones, módulos y librerías que le permiten realizar una amplia gama de tareas de análisis de datos y estadística. Algunos de los más utilizados son:

  • Funciones básicas: R viene con un conjunto de funciones básicas para manipular datos, realizar cálculos, generar gráficos, etc. Algunos ejemplos son: mean(), sum(), sqrt(), plot(), hist(), print(), etc.

  • ggplot2 es una librería popular para la creación y visualización de gráficos. Es fácil crear gráficos complejos de alta calidad. ggplot(), geom_point(), geom_line(), theme() y otras funciones son algunas de las funciones clave.

  • dplyr es una librería para manipular y transformar datos enmarcados. Tiene funciones como seleccionar, filtrar, cambiar, grupo_por, resumir y otras.

  • tidyr: ayuda en el formato de los datos al complementar dplyr. Reunir, esparcir, separar, unir y otras funciones

  • stringr: Las funcion stringr se pueden usar para trabajar con cadenas de texto o strings. tales como str_detect(), str_replace(), str_trim(), str_split() y así sucesivamente.

  • Lubridate: para trabajar con fechas y horas. Posee funciones como ymd(), mdy(), dmy(), hora, minuto, mes y año, entre otras.

  • readr: lee y escribe archivos CSV y otros formatos rápidamente. escribir_csv(), leer_tsv(), leer_csv(), etc.

  • purrr: funciones de trabajo de forma iterativa y funcional sobre vectores y listas. map(), map_dfr(), reduce(), walk(), etc.

Dataframe, Manipulacion e Introducción al análisis de datos

Dataframe

En R, una estructura de datos tabular, similar a una tabla en una base de datos o una hoja de calculo, se denomina DataFrame. Puede contener filas y columnas, cada una de las cuales tiene un tipo diferente, como numérico, caracter, factor, etc. Los DataFrames son estructuras de datos tabulares utilizadas para el analisis de datos en R que son similares a las tablas de bases de datos o las hojas de cálculo. Permite la manipulación y el almacenamiento de conjuntos de datos que incluyen una variedad de tipos de variables. Dependiendo del formato de los datos, puede crear un DataFrame en R utilizando la función data.frame() o funciones como read.csv(), read.table(), read.xlsx(), entre otras.

# Ejemplo de un Data Frame
datos <- data.frame(
  ID = 1:5,
  Nombre = c("Jose", "Nohemy", "George", "Ana", "Matteo"),
  Edad = c(17, 19, 18, 20, 18),
  Puntaje = c(15, 15, 18, 13, 19)
)
print(datos)
##   ID Nombre Edad Puntaje
## 1  1   Jose   17      15
## 2  2 Nohemy   19      15
## 3  3 George   18      18
## 4  4    Ana   20      13
## 5  5 Matteo   18      19

Manipulación de datos

La manipulación de datos en R es fácil de entender y fácil de usar. Algunas operaciones típicas son:

  • Seleccionar y ordenar filas/columnas según criterios usando corchetes \[ \], la función subset(), u order().

  • Filtrar observaciones basadas en condiciones específicas.

  • Agregar o eliminar columnas y cambiar valores con mutate().

  • Resumir estadísticas por grupos utilizando funciones como aggregate() o group_by() de dplyr.

  • Unir DataFrames tanto por filas como por columnas mediante rbind() o cbind(), entre otras funciones.

R ofrece una amplia gama de herramientas que le permiten manipular o modificar DataFrames de una variedad de maneras. La manipulación efectiva de grandes conjuntos de datos es fundamental como paso previo para su posterior análisis estadístico.

Introducción al análisis de datos

El análisis de datos en R incluye la importación de datos, la limpieza, la exploración, la visualización y el modelado. El análisis de datos en R comienza con una serie de pasos después de importar o cargar las bases de datos en DataFrames: exploración inicial, limpieza, análisis descriptivo, visualización de datos, modelado estadístico/ML, pruebas estadísticas y comunicación de los resultados. Todo esto es posible gracias a la amplia gama de funciones especializadas, paquetes que existen.

R es, por lo tanto, una plataforma completa, sólida y flexible para el tratamiento analítico de datos completo. En áreas académicas, científicas y comerciales, es muy valorado por su amplia gama de usos, facilidad de uso y habilidades.

Flujo del proceso de análisis de datos

El análisis de datos consiste en una serie de pasos que permiten convertir datos sin procesar en información valiosa para la toma de decisiones. Las entradas y salidas de datos (_inputs y outputs_) se muestran con frecuencia en diagramas de flujo de datos o DFD, donde se utilizan formas como rectángulos, triángulos, círculos y flechas. El flujo típico es:

  1. Recopilación de datos desde las distintas fuentes de datos disponibles, como bases de datos, archivos, APIs, etc. Contar con datos de alta calidad, completos y actualizados es importante.

  2. Los datos se preparan y limpian para eliminar errores, valores faltantes, duplicados e inconsistencias. Los datos que se utilizarán en el análisis son los únicos que se mantienen.

  3. Procesamiento y análisis de datos limpios para entrenar modelos predictivos mediante técnicas estadísticas, algoritmos de aprendizaje automático e inteligencia artificial, entre otras técnicas.

  4. Mostrar los resultados del análisis en formatos fáciles de entender, como tablas y gráficos. Los resultados técnicos se traducen a insights de negocio.

  5. La comunicación y visualización interactiva de los resultados ayuda a los diferentes miembros de la organización a tomar decisiones.

  6. Los datos procesados, modelos y resultados se almacenarán en data warehouses, lakes, etc. para su posterior uso bajo las normas de privacidad y seguridad correspondientes.

Importación de datos

R brinda una gran flexibilidad para importar datos a dataframes desde una variedad de fuentes y formatos de archivo, lo que facilita su análisis y manipulación posterior. Describiré con más detalle algunas de las opciones para los tipos de archivo más comunes:

  • Archivo CSV
# ejemplo 
#datos_csv <- read.csv("ejemploCSV.csv")
  • Archivo Excel
# ejemplo
# library(readxl) ## En el caso de no tener la libreria lo descargas (install.packages("readxl"))
# datos_excel <- read_excel("ejemploXLSX.xlsx")
  • Archivo JSON
# ejemplo
# library(jsonlite) ## En el caso de no tener la libreria lo descargas (install.packages("jsonlite"))
# datos_json <- fromJSON("ejemploJSON.json")
  • Archivo TXT
# ejemplo
# datos_txt <- readLines("ejemploTXT.txt")

Manejo de datos

Identificación y manejo de datos missing

El manejo de datos faltantes es esencial en estadística para garantizar la precisión de los análisis.

  • ejemplo 1 (Imputación con la media)
# Ejemplo datos
datos <- data.frame(
  ID = 1:5,
  Nombre = c("Jose", "Nohemy", "George", "Ana", "Matteo"),
  Edad = c(17, 19, 18, 20, 18),
  Puntaje = c(NA, 15, 18, 13, NA)
)
# Mostrar los datos 
print("Datos originales:")
## [1] "Datos originales:"
print(datos)
##   ID Nombre Edad Puntaje
## 1  1   Jose   17      NA
## 2  2 Nohemy   19      15
## 3  3 George   18      18
## 4  4    Ana   20      13
## 5  5 Matteo   18      NA
# Verificar qué filas tienen valores faltantes en la columna de Puntaje
filas_con_nulos <- which(is.na(datos$Puntaje))
print("Filas con valores faltantes:")
## [1] "Filas con valores faltantes:"
print(filas_con_nulos)
## [1] 1 5
# Imputación con la media
media_ingresos <- mean(datos$Puntaje, na.rm = TRUE) 
datos$Puntaje[is.na(datos$Puntaje)] <- media_ingresos 
# Mostrar los datos actualizados después de la imputación con la media
print("Datos con imputación de valores faltantes:")
## [1] "Datos con imputación de valores faltantes:"
print(datos)
##   ID Nombre Edad  Puntaje
## 1  1   Jose   17 15.33333
## 2  2 Nohemy   19 15.00000
## 3  3 George   18 18.00000
## 4  4    Ana   20 13.00000
## 5  5 Matteo   18 15.33333
  • ejemplo 2 (eliminación de datos)
# Ejemplo datos
datos <- data.frame(
  ID = 1:5,
  Nombre = c("Jose", "Nohemy", "George", "Ana", "Matteo"),
  Edad = c(17, 19, 18, 20, 18),
  Puntaje = c(NA, 15, 18, 13, NA)
)
# Mostrar los datos 
print("Datos originales:")
## [1] "Datos originales:"
print(datos)
##   ID Nombre Edad Puntaje
## 1  1   Jose   17      NA
## 2  2 Nohemy   19      15
## 3  3 George   18      18
## 4  4    Ana   20      13
## 5  5 Matteo   18      NA
# Eliminar filas con valores faltantes en la columna de puntaje
datos_sin_nulos <- datos[complete.cases(datos$Puntaje), ]
# Mostrar los datos después de eliminar filas con valores faltantes
print("Datos después de eliminar filas con valores faltantes:")
## [1] "Datos después de eliminar filas con valores faltantes:"
print(datos_sin_nulos)
##   ID Nombre Edad Puntaje
## 2  2 Nohemy   19      15
## 3  3 George   18      18
## 4  4    Ana   20      13

Identificación y manejo de datos outlier e inconsistentes

En R, puedes usar funciones específicas para identificar y manejar outliers. Un outlieres una observación anormal y excepcional en una muestra estadística o serie temporal de datos que puede afectar la estimación de los parámetros de la muestra.

# Datos de ingresos mensuales de un grupo de familias de distintas comunidades (Ejemplo aleatorio con datos falsos)
datos <- c(3944, 4130, 4075, 4182, 4224, 4190, 4053, 4028, 4188, 4211, 4165, 4046, 4286, 4094, 4170, 4072, 4244, 4177, 4292, 4030, 4015, 4107, 4163, 4085, 4209, 4061, 4057, 4036, 4167, 4215, 4105, 4033, 4253, 4029, 4169, 4155, 4106, 4088, 4268, 4160, 4184, 4139, 4146, 4117, 4238, 4096, 4173, 4150, 4166, 4104, 8206, 8469, 12371, 11168, 19628, 8434, 12539, 11056, 16478, 10558, 19588, 12677, 8316, 11843, 15433, 13724, 15724, 14732, 12248, 16714, 13294)
# Calcular el primer y tercer cuartil (Q1 y Q3)
Q1 <- quantile(datos, 0.25)
Q3 <- quantile(datos, 0.75)
# Calcular el rango intercuartílico (IQR)
IQR_valor <- IQR(datos)
# Calcular límites para identificar outliers
limite_inferior <- Q1 - 1.5 * IQR_valor
limite_superior <- Q3 + 1.5 * IQR_valor
# Identificar outliers
outliers <- datos[datos < limite_inferior | datos > limite_superior]
# Crear un boxplot
boxplot(datos, main="Boxplot de Ingresos Mensuales")

limpieza de datos y preparación de datos

La preparación de datos, también conocida como preprocesamiento, implica la realización de una serie de tareas para limpiar, transformar y enriquecer los datos en bruto antes de que puedan ser utilizados en un proceso analítico.

Incluye pasos como la validación inicial de la calidad de los datos de varias fuentes y la identificación y corrección de problemas como valores faltantes, outliers, duplicados e inconsistencias que podrían afectar los análisis posteriores.

pasos:

  1. Adquisición de datos:
# Cargar los datos
ruta_archivo <- "C:/Users/Usuario/Documents/netflix_titles.csv"
datos <- read.csv(ruta_archivo)
  1. Exploración de datos:
# Visualizar las primeras filas de los datos
head(datos)
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        show_id
## 1                                                                                                                                                                                                                                                                                                                               s1,Movie,Dick Johnson Is Dead,Kirsten Johnson,,United States,"September 25, 2021",2020,PG-13,90 min,Documentaries,"As her father nears the end of his life, filmmaker Kirsten Johnson stages his death in inventive and comical ways to help them both face the inevitable.";;
## 2 s2,TV Show,Blood & Water,,"Ama Qamata, Khosi Ngema, Gail Mabalane, Thabang Molaba, Dillon Windvogel, Natasha Thahane, Arno Greeff, Xolile Tshabalala, Getmore Sithole, Cindy Mahlangu, Ryle De Morny, Greteli Fincham, Sello Maake Ka-Ncube, Odwa Gwanya, Mekaila Mathys, Sandi Schultz, Duane Williams, Shamilla Miller, Patrick Mofokeng",South Africa,"September 24, 2021",2021,TV-MA,2 Seasons,"International TV Shows, TV Dramas, TV Mysteries","After crossing paths at a party, a Cape Town teen sets out to prove whether a private-school swimming star is her sister who was abducted at birth.";;
## 3                                                                                                                                                  s3,TV Show,Ganglands,Julien Leclercq,"Sami Bouajila, Tracy Gotoas, Samuel Jouy, Nabiha Akkari, Sofia Lesaffre, Salim Kechiouche, Noureddine Farihi, Geert Van Rampelberg, Bakary Diombera",,"September 24, 2021",2021,TV-MA,1 Season,"Crime TV Shows, International TV Shows, TV Action & Adventure","To protect his family from a powerful drug lord, skilled thief Mehdi and his expert team of robbers are pulled into a violent and deadly turf war.";;
## 4                                                                                                                                                                                                                                                                                                                                                s4,TV Show,Jailbirds New Orleans,,,,"September 24, 2021",2021,TV-MA,1 Season,"Docuseries, Reality TV","Feuds, flirtations and toilet talk go down among the incarcerated women at the Orleans Justice Center in New Orleans on this gritty reality series.";;
## 5                                                                                                                                                                                                    s5,TV Show,Kota Factory,,"Mayur More, Jitendra Kumar, Ranjan Raj, Alam Khan, Ahsaas Channa, Revathi Pillai, Urvi Singh, Arun Kumar",India,"September 24, 2021",2021,TV-MA,2 Seasons,"International TV Shows, Romantic TV Shows, TV Comedies","In a city of coaching centers known to train India’s finest collegiate minds, an earnest but unexceptional student and his friends navigate campus life.";;
## 6                                                                                s6,TV Show,Midnight Mass,Mike Flanagan,"Kate Siegel, Zach Gilford, Hamish Linklater, Henry Thomas, Kristin Lehman, Samantha Sloyan, Igby Rigney, Rahul Kohli, Annarah Cymone, Annabeth Gish, Alex Essoe, Rahul Abburi, Matt Biedel, Michael Trucco, Crystal Balint, Louis Oliver",,"September 24, 2021",2021,TV-MA,1 Season,"TV Dramas, TV Horror, TV Mysteries","The arrival of a charismatic young priest brings glorious miracles, ominous mysteries and renewed religious fervor to a dying town desperate to believe.";;
##   type title director cast country date_added release_year rating duration
## 1                  NA                      NA           NA                
## 2                  NA                      NA           NA                
## 3                  NA                      NA           NA                
## 4                  NA                      NA           NA                
## 5                  NA                      NA           NA                
## 6                  NA                      NA           NA                
##   listed_in description..
## 1                        
## 2                        
## 3                        
## 4                        
## 5                        
## 6
# Resumen estadístico básico
summary(datos)
##    show_id              type              title           director      
##  Length:8809        Length:8809        Length:8809        Mode:logical  
##  Class :character   Class :character   Class :character   NA's:8809     
##  Mode  :character   Mode  :character   Mode  :character                 
##                                                                         
##                                                                         
##                                                                         
##                                                                         
##      cast             country          date_added      release_year 
##  Length:8809        Length:8809        Mode:logical   Min.   :2018  
##  Class :character   Class :character   NA's:8809      1st Qu.:2018  
##  Mode  :character   Mode  :character                  Median :2018  
##                                                       Mean   :2018  
##                                                       3rd Qu.:2018  
##                                                       Max.   :2018  
##                                                       NA's   :8808  
##     rating            duration          listed_in         description..     
##  Length:8809        Length:8809        Length:8809        Length:8809       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
## 
# Verificar dimensiones del conjunto de datos
dim(datos)
## [1] 8809   12
# Visualizar la estructura de los datos
str(datos)
## 'data.frame':    8809 obs. of  12 variables:
##  $ show_id      : chr  "s1,Movie,Dick Johnson Is Dead,Kirsten Johnson,,United States,\"September 25, 2021\",2020,PG-13,90 min,Documenta"| __truncated__ "s2,TV Show,Blood & Water,,\"Ama Qamata, Khosi Ngema, Gail Mabalane, Thabang Molaba, Dillon Windvogel, Natasha T"| __truncated__ "s3,TV Show,Ganglands,Julien Leclercq,\"Sami Bouajila, Tracy Gotoas, Samuel Jouy, Nabiha Akkari, Sofia Lesaffre,"| __truncated__ "s4,TV Show,Jailbirds New Orleans,,,,\"September 24, 2021\",2021,TV-MA,1 Season,\"Docuseries, Reality TV\",\"Feu"| __truncated__ ...
##  $ type         : chr  "" "" "" "" ...
##  $ title        : chr  "" "" "" "" ...
##  $ director     : logi  NA NA NA NA NA NA ...
##  $ cast         : chr  "" "" "" "" ...
##  $ country      : chr  "" "" "" "" ...
##  $ date_added   : logi  NA NA NA NA NA NA ...
##  $ release_year : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ rating       : chr  "" "" "" "" ...
##  $ duration     : chr  "" "" "" "" ...
##  $ listed_in    : chr  "" "" "" "" ...
##  $ description..: chr  "" "" "" "" ...
  1. Limpieza de datos:
# Ejemplos de limpieza.
# Verificar y tratar valores faltantes
colSums(is.na(datos))
##       show_id          type         title      director          cast 
##             0             0             0          8809             0 
##       country    date_added  release_year        rating      duration 
##             0          8809          8808             0             0 
##     listed_in description.. 
##             0             0
datos <- na.omit(datos)  # Eliminar filas con valores faltantes

# Eliminar duplicados si los hay
datos <- unique(datos)
  1. Transformación de datos

Para garantizar la calidad de los análisis posteriores y obtener insights valiosos, es esencial preparar los datos. Es necesario tomar los datos en su forma original y luego procesarlos para dotarlos de la estructura, contenido y características ideales.

Algunos ejemplos de tareas de transformación son:

  • Examinar los datos crudos recién obtenidos para determinar si se requiere alguna transformación.

  • Aplicar modificaciones, como convertir valores de fecha, cambiar la orientación de largo a largo y viceversa, crear variables o columnas derivadas.

  • Enriquecer el dataset agregando nuevos atributos y métricas de interés 

  • Filtrar y almacenar los datos que se utilizarán para análisis específicos posteriores.

Visualización de datos

Visualización de datos univariados

Importamos un archivo

# Cargar los datos
ruta_archivo <- "C:/Users/Usuario/Documents/fifa_players.csv"
datos <- read.csv(ruta_archivo)

Histograma

# Histograma de la variable "age"
hist(datos$age, col = "skyblue", main = "Histograma - age")

Boxplot

# Boxplot de la variable "potential"
boxplot(datos$potential, col = "red", main = "Boxplot - potential")

Gráficos de Barras

# Crear intervalos
intervals <- cut(datos$overall_rating, breaks = seq(0, 100, by = 10))

# Gráfico de barras
barplot(table(intervals), col = "blue", main = "Gráfico de Barras - overall_rating")

Visualización de datos bivariados

Scatterplots

# Scatterplot de "overall_rating" vs "potential"
plot(datos$overall_rating, datos$potential, col = "blue", xlab = "Overall Rating", ylab = "Potential", main = "Scatterplot - Overall Rating vs Potential")

Matrices de Correlación

library(ggplot2)
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.3.2
# Calcular la matriz de correlación
correlation_matrix <- cor(datos[, sapply(datos, is.numeric)])

# Reorganizar la matriz para tener las etiquetas en orden
ordered_matrix <- correlation_matrix[order(row.names(correlation_matrix)), order(colnames(correlation_matrix))]

# Mostrar la matriz de correlación
print(correlation_matrix)
##                                       age    height_cm   weight_kgs
## age                            1.00000000  0.059579475  0.233819426
## height_cm                      0.05957947  1.000000000  0.495320359
## weight_kgs                     0.23381943  0.495320359  1.000000000
## overall_rating                 0.46152922  0.038079873  0.150520928
## potential                     -0.25957857  0.008525838 -0.015098950
## value_euro                             NA           NA           NA
## wage_euro                              NA           NA           NA
## international_reputation.1.5.  0.25997687  0.026849783  0.085085600
## weak_foot.1.5.                 0.06110803 -0.130463702 -0.128875336
## skill_moves.1.5.               0.02968110 -0.320140714 -0.353601120
## release_clause_euro                    NA           NA           NA
## national_rating                        NA           NA           NA
## national_jersey_number                 NA           NA           NA
## crossing                       0.13335725 -0.388804511 -0.394145351
## finishing                      0.07476055 -0.296793996 -0.294710244
## heading_accuracy               0.15172315 -0.043058013  0.027697604
## short_passing                  0.13715078 -0.290321276 -0.291826210
## volleys                        0.14775211 -0.279701660 -0.263662471
## dribbling                      0.01633362 -0.382180531 -0.414171729
## curve                          0.14762754 -0.345927472 -0.347161017
## freekick_accuracy              0.19600330 -0.316407282 -0.305299273
## long_passing                   0.18501807 -0.262812586 -0.260839826
## ball_control                   0.09155228 -0.328643104 -0.339170217
## acceleration                  -0.15166450 -0.406415045 -0.481583486
## sprint_speed                  -0.14426512 -0.350073549 -0.413237762
## agility                       -0.01317678 -0.438373386 -0.533049744
## reactions                      0.46342071 -0.019999998  0.082796362
## balance                       -0.08360953 -0.532395628 -0.663188478
## shot_power                     0.15887458 -0.239960476 -0.198427897
## jumping                        0.18381587 -0.052169438  0.005740647
## stamina                        0.10380388 -0.254793990 -0.232554343
## strength                       0.33967131  0.318769066  0.610431185
## long_shots                     0.16465481 -0.305601295 -0.278551905
## aggression                     0.26485867 -0.073996001  0.021925516
## interceptions                  0.19813066 -0.078730189 -0.034607195
## positioning                    0.08551035 -0.353379728 -0.355280550
## vision                         0.19320089 -0.287253978 -0.282234466
## penalties                      0.14792392 -0.272134269 -0.251452632
## composure                      0.39471684 -0.111849252 -0.044537978
## marking                        0.14672473 -0.089783206 -0.057559333
## standing_tackle                0.11836161 -0.081452370 -0.056317990
## sliding_tackle                 0.10300828 -0.086092580 -0.065964991
##                               overall_rating    potential value_euro wage_euro
## age                               0.46152922 -0.259578566         NA        NA
## height_cm                         0.03807987  0.008525838         NA        NA
## weight_kgs                        0.15052093 -0.015098950         NA        NA
## overall_rating                    1.00000000  0.647249240         NA        NA
## potential                         0.64724924  1.000000000         NA        NA
## value_euro                                NA           NA          1        NA
## wage_euro                                 NA           NA         NA         1
## international_reputation.1.5.     0.48941597  0.358874371         NA        NA
## weak_foot.1.5.                    0.21639350  0.167735495         NA        NA
## skill_moves.1.5.                  0.41871802  0.356241084         NA        NA
## release_clause_euro                       NA           NA         NA        NA
## national_rating                           NA           NA         NA        NA
## national_jersey_number                    NA           NA         NA        NA
## crossing                          0.39834317  0.244438236         NA        NA
## finishing                         0.34233114  0.247552068         NA        NA
## heading_accuracy                  0.34767032  0.204058724         NA        NA
## short_passing                     0.50681904  0.368105526         NA        NA
## volleys                           0.39692210  0.255953677         NA        NA
## dribbling                         0.37871796  0.315429352         NA        NA
## curve                             0.42389039  0.278243214         NA        NA
## freekick_accuracy                 0.40087831  0.230355260         NA        NA
## long_passing                      0.48999766  0.322550167         NA        NA
## ball_control                      0.46433631  0.350661625         NA        NA
## acceleration                      0.20485306  0.239457057         NA        NA
## sprint_speed                      0.21844262  0.241553385         NA        NA
## agility                           0.27526028  0.225621322         NA        NA
## reactions                         0.85576710  0.505011408         NA        NA
## balance                           0.11466715  0.143428690         NA        NA
## shot_power                        0.44530642  0.289157440         NA        NA
## jumping                           0.27100765  0.106848778         NA        NA
## stamina                           0.36874881  0.199151061         NA        NA
## strength                          0.36072517  0.077917556         NA        NA
## long_shots                        0.42945805  0.265325625         NA        NA
## aggression                        0.39707198  0.170004854         NA        NA
## interceptions                     0.32203032  0.151945768         NA        NA
## positioning                       0.36211586  0.247677279         NA        NA
## vision                            0.50681180  0.348179423         NA        NA
## penalties                         0.35090157  0.226745611         NA        NA
## composure                         0.72927827  0.434113289         NA        NA
## marking                           0.29253832  0.162998794         NA        NA
## standing_tackle                   0.25448066  0.143926610         NA        NA
## sliding_tackle                    0.22546619  0.129754641         NA        NA
##                               international_reputation.1.5. weak_foot.1.5.
## age                                              0.25997687     0.06110803
## height_cm                                        0.02684978    -0.13046370
## weight_kgs                                       0.08508560    -0.12887534
## overall_rating                                   0.48941597     0.21639350
## potential                                        0.35887437     0.16773550
## value_euro                                               NA             NA
## wage_euro                                                NA             NA
## international_reputation.1.5.                    1.00000000     0.12623802
## weak_foot.1.5.                                   0.12623802     1.00000000
## skill_moves.1.5.                                 0.20566106     0.34528383
## release_clause_euro                                      NA             NA
## national_rating                                          NA             NA
## national_jersey_number                                   NA             NA
## crossing                                         0.19144330     0.31163871
## finishing                                        0.17978895     0.36966260
## heading_accuracy                                 0.15766224     0.19234650
## short_passing                                    0.23964762     0.32876561
## volleys                                          0.24422399     0.36528831
## dribbling                                        0.17751054     0.35881127
## curve                                            0.23364871     0.35036054
## freekick_accuracy                                0.22509768     0.33357491
## long_passing                                     0.23866806     0.28441514
## ball_control                                     0.21532693     0.36185036
## acceleration                                     0.04440586     0.27120125
## sprint_speed                                     0.04440601     0.25930360
## agility                                          0.10200692     0.30774521
## reactions                                        0.43960828     0.20426802
## balance                                          0.05219309     0.25648653
## shot_power                                       0.22590780     0.34141986
## jumping                                          0.12265695     0.07149117
## stamina                                          0.09246669     0.24149049
## strength                                         0.13368951    -0.00360932
## long_shots                                       0.21429907     0.36559889
## aggression                                       0.17293078     0.13703500
## interceptions                                    0.12649989     0.05674358
## positioning                                      0.18255581     0.35532646
## vision                                           0.28389025     0.34368382
## penalties                                        0.22060838     0.33757258
## composure                                        0.38890622     0.28556032
## marking                                          0.11531806     0.06700224
## standing_tackle                                  0.08980893     0.04571589
## sliding_tackle                                   0.07726731     0.02784522
##                               skill_moves.1.5. release_clause_euro
## age                                 0.02968110                  NA
## height_cm                          -0.32014071                  NA
## weight_kgs                         -0.35360112                  NA
## overall_rating                      0.41871802                  NA
## potential                           0.35624108                  NA
## value_euro                                  NA                  NA
## wage_euro                                   NA                  NA
## international_reputation.1.5.       0.20566106                  NA
## weak_foot.1.5.                      0.34528383                  NA
## skill_moves.1.5.                    1.00000000                  NA
## release_clause_euro                         NA                   1
## national_rating                             NA                  NA
## national_jersey_number                      NA                  NA
## crossing                            0.74646640                  NA
## finishing                           0.74849229                  NA
## heading_accuracy                    0.45478345                  NA
## short_passing                       0.73554364                  NA
## volleys                             0.74922958                  NA
## dribbling                           0.84182734                  NA
## curve                               0.77566582                  NA
## freekick_accuracy                   0.70483242                  NA
## long_passing                        0.62929786                  NA
## ball_control                        0.82126837                  NA
## acceleration                        0.66058759                  NA
## sprint_speed                        0.63366261                  NA
## agility                             0.68756220                  NA
## reactions                           0.38537376                  NA
## balance                             0.58437059                  NA
## shot_power                          0.72374650                  NA
## jumping                             0.10995645                  NA
## stamina                             0.58297030                  NA
## strength                           -0.03341497                  NA
## long_shots                          0.75705356                  NA
## aggression                          0.36034168                  NA
## interceptions                       0.22191238                  NA
## positioning                         0.78661749                  NA
## vision                              0.67608914                  NA
## penalties                           0.69588882                  NA
## composure                           0.59859513                  NA
## marking                             0.25560083                  NA
## standing_tackle                     0.22553172                  NA
## sliding_tackle                      0.19343774                  NA
##                               national_rating national_jersey_number   crossing
## age                                        NA                     NA  0.1333573
## height_cm                                  NA                     NA -0.3888045
## weight_kgs                                 NA                     NA -0.3941454
## overall_rating                             NA                     NA  0.3983432
## potential                                  NA                     NA  0.2444382
## value_euro                                 NA                     NA         NA
## wage_euro                                  NA                     NA         NA
## international_reputation.1.5.              NA                     NA  0.1914433
## weak_foot.1.5.                             NA                     NA  0.3116387
## skill_moves.1.5.                           NA                     NA  0.7464664
## release_clause_euro                        NA                     NA         NA
## national_rating                             1                     NA         NA
## national_jersey_number                     NA                      1         NA
## crossing                                   NA                     NA  1.0000000
## finishing                                  NA                     NA  0.6641826
## heading_accuracy                           NA                     NA  0.4840058
## short_passing                              NA                     NA  0.8124045
## volleys                                    NA                     NA  0.6965110
## dribbling                                  NA                     NA  0.8609119
## curve                                      NA                     NA  0.8377860
## freekick_accuracy                          NA                     NA  0.7644982
## long_passing                               NA                     NA  0.7600857
## ball_control                               NA                     NA  0.8452110
## acceleration                               NA                     NA  0.6779973
## sprint_speed                               NA                     NA  0.6562626
## agility                                    NA                     NA  0.7025163
## reactions                                  NA                     NA  0.3975736
## balance                                    NA                     NA  0.6252702
## shot_power                                 NA                     NA  0.7139692
## jumping                                    NA                     NA  0.1430833
## stamina                                    NA                     NA  0.6858946
## strength                                   NA                     NA -0.0195133
## long_shots                                 NA                     NA  0.7492161
## aggression                                 NA                     NA  0.4862775
## interceptions                              NA                     NA  0.4381643
## positioning                                NA                     NA  0.7914316
## vision                                     NA                     NA  0.6878635
## penalties                                  NA                     NA  0.6551658
## composure                                  NA                     NA  0.5897258
## marking                                    NA                     NA  0.4574006
## standing_tackle                            NA                     NA  0.4405777
## sliding_tackle                             NA                     NA  0.4224071
##                                   finishing heading_accuracy short_passing
## age                            0.0747605504       0.15172315     0.1371508
## height_cm                     -0.2967939961      -0.04305801    -0.2903213
## weight_kgs                    -0.2947102440       0.02769760    -0.2918262
## overall_rating                 0.3423311424       0.34767032     0.5068190
## potential                      0.2475520682       0.20405872     0.3681055
## value_euro                               NA               NA            NA
## wage_euro                                NA               NA            NA
## international_reputation.1.5.  0.1797889469       0.15766224     0.2396476
## weak_foot.1.5.                 0.3696626010       0.19234650     0.3287656
## skill_moves.1.5.               0.7484922901       0.45478345     0.7355436
## release_clause_euro                      NA               NA            NA
## national_rating                          NA               NA            NA
## national_jersey_number                   NA               NA            NA
## crossing                       0.6641825951       0.48400582     0.8124045
## finishing                      1.0000000000       0.48281325     0.6718370
## heading_accuracy               0.4828132465       1.00000000     0.6536214
## short_passing                  0.6718369584       0.65362141     1.0000000
## volleys                        0.8864689171       0.51625955     0.7050007
## dribbling                      0.8277433090       0.56487810     0.8492649
## curve                          0.7656688766       0.45339583     0.7794680
## freekick_accuracy              0.7048280938       0.42091877     0.7393378
## long_passing                   0.5254918645       0.52724108     0.8987303
## ball_control                   0.7945573616       0.66932993     0.9149221
## acceleration                   0.6167960811       0.35517422     0.5820243
## sprint_speed                   0.6033525903       0.40461454     0.5734883
## agility                        0.6515510463       0.28176027     0.6217308
## reactions                      0.3420252447       0.33754128     0.4916754
## balance                        0.5327378012       0.18801036     0.5419388
## shot_power                     0.8207395005       0.61751258     0.7797748
## jumping                        0.1023853362       0.39003265     0.2103466
## stamina                        0.5272931928       0.65035563     0.7304599
## strength                      -0.0006046457       0.49024873     0.1476784
## long_shots                     0.8800804973       0.51668376     0.7691668
## aggression                     0.2621417523       0.70535601     0.6221076
## interceptions                 -0.0039391545       0.55992557     0.5499498
## positioning                    0.8900492682       0.54409651     0.7661451
## vision                         0.7028651111       0.28600261     0.7154318
## penalties                      0.8405040325       0.56213520     0.6847831
## composure                      0.5505200056       0.52557791     0.7013409
## marking                        0.0420580366       0.59314046     0.5701865
## standing_tackle               -0.0134269403       0.57301458     0.5489071
## sliding_tackle                -0.0514323589       0.54645721     0.5167613
##                                   volleys   dribbling       curve
## age                            0.14775211  0.01633362  0.14762754
## height_cm                     -0.27970166 -0.38218053 -0.34592747
## weight_kgs                    -0.26366247 -0.41417173 -0.34716102
## overall_rating                 0.39692210  0.37871796  0.42389039
## potential                      0.25595368  0.31542935  0.27824321
## value_euro                             NA          NA          NA
## wage_euro                              NA          NA          NA
## international_reputation.1.5.  0.24422399  0.17751054  0.23364871
## weak_foot.1.5.                 0.36528831  0.35881127  0.35036054
## skill_moves.1.5.               0.74922958  0.84182734  0.77566582
## release_clause_euro                    NA          NA          NA
## national_rating                        NA          NA          NA
## national_jersey_number                 NA          NA          NA
## crossing                       0.69651102  0.86091186  0.83778599
## finishing                      0.88646892  0.82774331  0.76566888
## heading_accuracy               0.51625955  0.56487810  0.45339583
## short_passing                  0.70500073  0.84926489  0.77946797
## volleys                        1.00000000  0.81211167  0.81077209
## dribbling                      0.81211167  1.00000000  0.84613569
## curve                          0.81077209  0.84613569  1.00000000
## freekick_accuracy              0.75415448  0.75718393  0.86205439
## long_passing                   0.57913213  0.72987004  0.71635875
## ball_control                   0.79905208  0.94155615  0.83378148
## acceleration                   0.58269747  0.75934826  0.61681071
## sprint_speed                   0.56833676  0.73848869  0.58924118
## agility                        0.63103091  0.77008723  0.68640432
## reactions                      0.40088751  0.37938656  0.42011253
## balance                        0.52084928  0.66894019  0.59455209
## shot_power                     0.83594065  0.80950236  0.79739940
## jumping                        0.13219702  0.15288373  0.11595149
## stamina                        0.54266566  0.70274760  0.60513060
## strength                       0.04019628 -0.02139199 -0.02478189
## long_shots                     0.87120133  0.84613562  0.83906793
## aggression                     0.34428780  0.45966370  0.41168283
## interceptions                  0.10106425  0.31219847  0.28405507
## positioning                    0.85166103  0.90165604  0.81769468
## vision                         0.70291947  0.73133090  0.74875462
## penalties                      0.83426307  0.77329295  0.75682205
## composure                      0.60704824  0.61382137  0.62864390
## marking                        0.13556991  0.35333331  0.30379909
## standing_tackle                0.08776972  0.31957915  0.27425040
## sliding_tackle                 0.05063970  0.29228908  0.24599100
##                               freekick_accuracy long_passing ball_control
## age                                 0.196003299    0.1850181   0.09155228
## height_cm                          -0.316407282   -0.2628126  -0.32864310
## weight_kgs                         -0.305299273   -0.2608398  -0.33917022
## overall_rating                      0.400878312    0.4899977   0.46433631
## potential                           0.230355260    0.3225502   0.35066162
## value_euro                                   NA           NA           NA
## wage_euro                                    NA           NA           NA
## international_reputation.1.5.       0.225097679    0.2386681   0.21532693
## weak_foot.1.5.                      0.333574910    0.2844151   0.36185036
## skill_moves.1.5.                    0.704832423    0.6292979   0.82126837
## release_clause_euro                          NA           NA           NA
## national_rating                              NA           NA           NA
## national_jersey_number                       NA           NA           NA
## crossing                            0.764498156    0.7600857   0.84521097
## finishing                           0.704828094    0.5254919   0.79455736
## heading_accuracy                    0.420918766    0.5272411   0.66932993
## short_passing                       0.739337850    0.8987303   0.91492205
## volleys                             0.754154485    0.5791321   0.79905208
## dribbling                           0.757183926    0.7298700   0.94155615
## curve                               0.862054392    0.7163587   0.83378148
## freekick_accuracy                   1.000000000    0.7075056   0.76396485
## long_passing                        0.707505569    1.0000000   0.79595861
## ball_control                        0.763964852    0.7959586   1.00000000
## acceleration                        0.507970193    0.4576578   0.68987616
## sprint_speed                        0.478210858    0.4440151   0.67949276
## agility                             0.594473617    0.5313295   0.71238704
## reactions                           0.401976103    0.4711807   0.45203202
## balance                             0.526996011    0.4700364   0.60901322
## shot_power                          0.760652940    0.6826800   0.83557160
## jumping                             0.086728246    0.1663727   0.20711008
## stamina                             0.551780786    0.6490225   0.74320188
## strength                           -0.006810394    0.1287098   0.09928486
## long_shots                          0.808451698    0.6784937   0.83984148
## aggression                          0.405886791    0.5996368   0.56352917
## interceptions                       0.303410596    0.6020281   0.42960858
## positioning                         0.736088064    0.6259078   0.86949244
## vision                              0.718613842    0.7016081   0.72066544
## penalties                           0.740311853    0.5544386   0.77506448
## composure                           0.595693243    0.6616507   0.69047311
## marking                             0.310730809    0.5983769   0.46621358
## standing_tackle                     0.289089370    0.5934644   0.43095903
## sliding_tackle                      0.258011178    0.5685935   0.39856091
##                               acceleration sprint_speed     agility   reactions
## age                            -0.15166450  -0.14426512 -0.01317678  0.46342071
## height_cm                      -0.40641505  -0.35007355 -0.43837339 -0.02000000
## weight_kgs                     -0.48158349  -0.41323776 -0.53304974  0.08279636
## overall_rating                  0.20485306   0.21844262  0.27526028  0.85576710
## potential                       0.23945706   0.24155339  0.22562132  0.50501141
## value_euro                              NA           NA          NA          NA
## wage_euro                               NA           NA          NA          NA
## international_reputation.1.5.   0.04440586   0.04440601  0.10200692  0.43960828
## weak_foot.1.5.                  0.27120125   0.25930360  0.30774521  0.20426802
## skill_moves.1.5.                0.66058759   0.63366261  0.68756220  0.38537376
## release_clause_euro                     NA           NA          NA          NA
## national_rating                         NA           NA          NA          NA
## national_jersey_number                  NA           NA          NA          NA
## crossing                        0.67799732   0.65626257  0.70251633  0.39757356
## finishing                       0.61679608   0.60335259  0.65155105  0.34202524
## heading_accuracy                0.35517422   0.40461454  0.28176027  0.33754128
## short_passing                   0.58202428   0.57348825  0.62173078  0.49167538
## volleys                         0.58269747   0.56833676  0.63103091  0.40088751
## dribbling                       0.75934826   0.73848869  0.77008723  0.37938656
## curve                           0.61681071   0.58924118  0.68640432  0.42011253
## freekick_accuracy               0.50797019   0.47821086  0.59447362  0.40197610
## long_passing                    0.45765783   0.44401514  0.53132951  0.47118069
## ball_control                    0.68987616   0.67949276  0.71238704  0.45203202
## acceleration                    1.00000000   0.92615050  0.81660282  0.20085136
## sprint_speed                    0.92615050   1.00000000  0.77020047  0.20417015
## agility                         0.81660282   0.77020047  1.00000000  0.28797619
## reactions                       0.20085136   0.20417015  0.28797619  1.00000000
## balance                         0.71648518   0.65156155  0.77470410  0.16185568
## shot_power                      0.55302091   0.55728792  0.58435630  0.42601975
## jumping                         0.22582062   0.24244733  0.22242869  0.26482195
## stamina                         0.62698493   0.63940805  0.58561747  0.37937781
## strength                       -0.15336853  -0.06980217 -0.21986160  0.30096744
## long_shots                      0.58940409   0.57124628  0.65162944  0.43224500
## aggression                      0.27347353   0.30406484  0.25910140  0.41019741
## interceptions                   0.17568418   0.18940555  0.15574687  0.34490321
## positioning                     0.69457627   0.67787601  0.71505226  0.39355449
## vision                          0.46950231   0.43860229  0.60115750  0.51213952
## penalties                       0.54456389   0.53282682  0.57334112  0.35634492
## composure                       0.36893191   0.37400932  0.45070741  0.69089393
## marking                         0.21944821   0.23720147  0.18698461  0.29536045
## standing_tackle                 0.18859012   0.20545134  0.14914548  0.26287910
## sliding_tackle                  0.18191434   0.19855442  0.13596240  0.23599235
##                                   balance shot_power      jumping     stamina
## age                           -0.08360953  0.1588746  0.183815869  0.10380388
## height_cm                     -0.53239563 -0.2399605 -0.052169438 -0.25479399
## weight_kgs                    -0.66318848 -0.1984279  0.005740647 -0.23255434
## overall_rating                 0.11466715  0.4453064  0.271007648  0.36874881
## potential                      0.14342869  0.2891574  0.106848778  0.19915106
## value_euro                             NA         NA           NA          NA
## wage_euro                              NA         NA           NA          NA
## international_reputation.1.5.  0.05219309  0.2259078  0.122656952  0.09246669
## weak_foot.1.5.                 0.25648653  0.3414199  0.071491165  0.24149049
## skill_moves.1.5.               0.58437059  0.7237465  0.109956451  0.58297030
## release_clause_euro                    NA         NA           NA          NA
## national_rating                        NA         NA           NA          NA
## national_jersey_number                 NA         NA           NA          NA
## crossing                       0.62527025  0.7139692  0.143083334  0.68589463
## finishing                      0.53273780  0.8207395  0.102385336  0.52729319
## heading_accuracy               0.18801036  0.6175126  0.390032646  0.65035563
## short_passing                  0.54193880  0.7797748  0.210346580  0.73045987
## volleys                        0.52084928  0.8359407  0.132197020  0.54266566
## dribbling                      0.66894019  0.8095024  0.152883728  0.70274760
## curve                          0.59455209  0.7973994  0.115951492  0.60513060
## freekick_accuracy              0.52699601  0.7606529  0.086728246  0.55178079
## long_passing                   0.47003639  0.6826800  0.166372682  0.64902245
## ball_control                   0.60901322  0.8355716  0.207110082  0.74320188
## acceleration                   0.71648518  0.5530209  0.225820617  0.62698493
## sprint_speed                   0.65156155  0.5572879  0.242447334  0.63940805
## agility                        0.77470410  0.5843563  0.222428688  0.58561747
## reactions                      0.16185568  0.4260197  0.264821950  0.37937781
## balance                        1.00000000  0.4717666  0.197026987  0.49307640
## shot_power                     0.47176663  1.0000000  0.191406394  0.62920168
## jumping                        0.19702699  0.1914064  1.000000000  0.35703713
## stamina                        0.49307640  0.6292017  0.357037133  1.00000000
## strength                      -0.37731026  0.1754114  0.294134874  0.26710013
## long_shots                     0.54020194  0.8924523  0.142046149  0.61066238
## aggression                     0.20206645  0.5035093  0.382314297  0.65998142
## interceptions                  0.16735207  0.2761759  0.300375267  0.58878590
## positioning                    0.60377760  0.8136809  0.150132543  0.65741315
## vision                         0.49619018  0.6859831  0.066636435  0.48263842
## penalties                      0.49080402  0.7994453  0.141194697  0.53350536
## composure                      0.33170817  0.6455325  0.261278257  0.54103163
## marking                        0.19737004  0.3099795  0.290395798  0.60241442
## standing_tackle                0.17273552  0.2695903  0.272198032  0.58375482
## sliding_tackle                 0.17005972  0.2341199  0.271686868  0.55823785
##                                    strength  long_shots  aggression
## age                            0.3396713146  0.16465481  0.26485867
## height_cm                      0.3187690659 -0.30560129 -0.07399600
## weight_kgs                     0.6104311847 -0.27855190  0.02192552
## overall_rating                 0.3607251725  0.42945805  0.39707198
## potential                      0.0779175561  0.26532562  0.17000485
## value_euro                               NA          NA          NA
## wage_euro                                NA          NA          NA
## international_reputation.1.5.  0.1336895078  0.21429907  0.17293078
## weak_foot.1.5.                -0.0036093204  0.36559889  0.13703500
## skill_moves.1.5.              -0.0334149733  0.75705356  0.36034168
## release_clause_euro                      NA          NA          NA
## national_rating                          NA          NA          NA
## national_jersey_number                   NA          NA          NA
## crossing                      -0.0195133014  0.74921606  0.48627748
## finishing                     -0.0006046457  0.88008050  0.26214175
## heading_accuracy               0.4902487257  0.51668376  0.70535601
## short_passing                  0.1476783896  0.76916678  0.62210761
## volleys                        0.0401962768  0.87120133  0.34428780
## dribbling                     -0.0213919946  0.84613562  0.45966370
## curve                         -0.0247818936  0.83906793  0.41168283
## freekick_accuracy             -0.0068103937  0.80845170  0.40588679
## long_passing                   0.1287097929  0.67849368  0.59963676
## ball_control                   0.0992848641  0.83984148  0.56352917
## acceleration                  -0.1533685301  0.58940409  0.27347353
## sprint_speed                  -0.0698021696  0.57124628  0.30406484
## agility                       -0.2198615982  0.65162944  0.25910140
## reactions                      0.3009674412  0.43224500  0.41019741
## balance                       -0.3773102555  0.54020194  0.20206645
## shot_power                     0.1754113522  0.89245226  0.50350934
## jumping                        0.2941348736  0.14204615  0.38231430
## stamina                        0.2671001295  0.61066238  0.65998142
## strength                       1.0000000000  0.06203469  0.47654426
## long_shots                     0.0620346860  1.00000000  0.40905608
## aggression                     0.4765442635  0.40905608  1.00000000
## interceptions                  0.3593792745  0.20854445  0.75463077
## positioning                    0.0141931030  0.86381381  0.40088958
## vision                        -0.0338725807  0.75865311  0.31114714
## penalties                      0.0679122364  0.81480044  0.35240174
## composure                      0.2905996758  0.63109189  0.52977980
## marking                        0.3381566808  0.23264428  0.72911899
## standing_tackle                0.3355859067  0.18878894  0.74705524
## sliding_tackle                 0.3078955669  0.15089952  0.72418772
##                               interceptions positioning      vision   penalties
## age                             0.198130657  0.08551035  0.19320089  0.14792392
## height_cm                      -0.078730189 -0.35337973 -0.28725398 -0.27213427
## weight_kgs                     -0.034607195 -0.35528055 -0.28223447 -0.25145263
## overall_rating                  0.322030319  0.36211586  0.50681180  0.35090157
## potential                       0.151945768  0.24767728  0.34817942  0.22674561
## value_euro                               NA          NA          NA          NA
## wage_euro                                NA          NA          NA          NA
## international_reputation.1.5.   0.126499886  0.18255581  0.28389025  0.22060838
## weak_foot.1.5.                  0.056743576  0.35532646  0.34368382  0.33757258
## skill_moves.1.5.                0.221912376  0.78661749  0.67608914  0.69588882
## release_clause_euro                      NA          NA          NA          NA
## national_rating                          NA          NA          NA          NA
## national_jersey_number                   NA          NA          NA          NA
## crossing                        0.438164348  0.79143162  0.68786352  0.65516580
## finishing                      -0.003939154  0.89004927  0.70286511  0.84050403
## heading_accuracy                0.559925566  0.54409651  0.28600261  0.56213520
## short_passing                   0.549949797  0.76614512  0.71543180  0.68478314
## volleys                         0.101064250  0.85166103  0.70291947  0.83426307
## dribbling                       0.312198474  0.90165604  0.73133090  0.77329295
## curve                           0.284055066  0.81769468  0.74875462  0.75682205
## freekick_accuracy               0.303410596  0.73608806  0.71861384  0.74031185
## long_passing                    0.602028141  0.62590776  0.70160812  0.55443861
## ball_control                    0.429608582  0.86949244  0.72066544  0.77506448
## acceleration                    0.175684176  0.69457627  0.46950231  0.54456389
## sprint_speed                    0.189405554  0.67787601  0.43860229  0.53282682
## agility                         0.155746873  0.71505226  0.60115750  0.57334112
## reactions                       0.344903214  0.39355449  0.51213952  0.35634492
## balance                         0.167352072  0.60377760  0.49619018  0.49080402
## shot_power                      0.276175933  0.81368086  0.68598311  0.79944530
## jumping                         0.300375267  0.15013254  0.06663643  0.14119470
## stamina                         0.588785901  0.65741315  0.48263842  0.53350536
## strength                        0.359379275  0.01419310 -0.03387258  0.06791224
## long_shots                      0.208544452  0.86381381  0.75865311  0.81480044
## aggression                      0.754630773  0.40088958  0.31114714  0.35240174
## interceptions                   1.000000000  0.18718093  0.19022774  0.12615611
## positioning                     0.187180927  1.00000000  0.73938824  0.80558872
## vision                          0.190227737  0.73938824  1.00000000  0.63681142
## penalties                       0.126156107  0.80558872  0.63681142  1.00000000
## composure                       0.410590156  0.59511985  0.64510981  0.56952641
## marking                         0.895607004  0.22046475  0.18888756  0.16868752
## standing_tackle                 0.943150345  0.17740134  0.15544094  0.11870885
## sliding_tackle                  0.930522174  0.14446571  0.12218764  0.08426907
##                                 composure     marking standing_tackle
## age                            0.39471684  0.14672473      0.11836161
## height_cm                     -0.11184925 -0.08978321     -0.08145237
## weight_kgs                    -0.04453798 -0.05755933     -0.05631799
## overall_rating                 0.72927827  0.29253832      0.25448066
## potential                      0.43411329  0.16299879      0.14392661
## value_euro                             NA          NA              NA
## wage_euro                              NA          NA              NA
## international_reputation.1.5.  0.38890622  0.11531806      0.08980893
## weak_foot.1.5.                 0.28556032  0.06700224      0.04571589
## skill_moves.1.5.               0.59859513  0.25560083      0.22553172
## release_clause_euro                    NA          NA              NA
## national_rating                        NA          NA              NA
## national_jersey_number                 NA          NA              NA
## crossing                       0.58972576  0.45740058      0.44057767
## finishing                      0.55052001  0.04205804     -0.01342694
## heading_accuracy               0.52557791  0.59314046      0.57301458
## short_passing                  0.70134094  0.57018650      0.54890710
## volleys                        0.60704824  0.13556991      0.08776972
## dribbling                      0.61382137  0.35333331      0.31957915
## curve                          0.62864390  0.30379909      0.27425040
## freekick_accuracy              0.59569324  0.31073081      0.28908937
## long_passing                   0.66165070  0.59837689      0.59346445
## ball_control                   0.69047311  0.46621358      0.43095903
## acceleration                   0.36893191  0.21944821      0.18859012
## sprint_speed                   0.37400932  0.23720147      0.20545134
## agility                        0.45070741  0.18698461      0.14914548
## reactions                      0.69089393  0.29536045      0.26287910
## balance                        0.33170817  0.19737004      0.17273552
## shot_power                     0.64553251  0.30997948      0.26959032
## jumping                        0.26127826  0.29039580      0.27219803
## stamina                        0.54103163  0.60241442      0.58375482
## strength                       0.29059968  0.33815668      0.33558591
## long_shots                     0.63109189  0.23264428      0.18878894
## aggression                     0.52977980  0.72911899      0.74705524
## interceptions                  0.41059016  0.89560700      0.94315035
## positioning                    0.59511985  0.22046475      0.17740134
## vision                         0.64510981  0.18888756      0.15544094
## penalties                      0.56952641  0.16868752      0.11870885
## composure                      1.00000000  0.40386809      0.36686072
## marking                        0.40386809  1.00000000      0.91163222
## standing_tackle                0.36686072  0.91163222      1.00000000
## sliding_tackle                 0.33258754  0.90145959      0.97513808
##                               sliding_tackle
## age                               0.10300828
## height_cm                        -0.08609258
## weight_kgs                       -0.06596499
## overall_rating                    0.22546619
## potential                         0.12975464
## value_euro                                NA
## wage_euro                                 NA
## international_reputation.1.5.     0.07726731
## weak_foot.1.5.                    0.02784522
## skill_moves.1.5.                  0.19343774
## release_clause_euro                       NA
## national_rating                           NA
## national_jersey_number                    NA
## crossing                          0.42240711
## finishing                        -0.05143236
## heading_accuracy                  0.54645721
## short_passing                     0.51676133
## volleys                           0.05063970
## dribbling                         0.29228908
## curve                             0.24599100
## freekick_accuracy                 0.25801118
## long_passing                      0.56859354
## ball_control                      0.39856091
## acceleration                      0.18191434
## sprint_speed                      0.19855442
## agility                           0.13596240
## reactions                         0.23599235
## balance                           0.17005972
## shot_power                        0.23411989
## jumping                           0.27168687
## stamina                           0.55823785
## strength                          0.30789557
## long_shots                        0.15089952
## aggression                        0.72418772
## interceptions                     0.93052217
## positioning                       0.14446571
## vision                            0.12218764
## penalties                         0.08426907
## composure                         0.33258754
## marking                           0.90145959
## standing_tackle                   0.97513808
## sliding_tackle                    1.00000000
# Crear el gráfico de mapa de calor de la matriz de correlación
ggplot(data = melt(correlation_matrix), aes(Var1, Var2, fill = value)) +
  geom_tile() +
  scale_fill_gradient(low = "blue", high = "red") +
  labs(title = "Matriz de Correlación")

Visualización de datos bivariados multivariado

Gráficos 3D

# Cargar la librería scatterplot3d
library(scatterplot3d)

# Crear el gráfico 3D de dispersión
scatterplot3d(datos$overall_rating, datos$potential, datos$age,
              xlab = "Overall Rating", ylab = "Potential", zlab = "Age",
              color = "blue", pch = 16, main = "Gráfico 3D de Dispersión")

Pair plot

library(ggplot2)

# Ejemplo de pair plot con las variables "overall_rating", "potential", y "age"
subset_data <- datos[, c("overall_rating", "potential", "age")]

# Crear el pair plot
pairs(subset_data)

Visualización de datos avanzados (imágenes)

Heatmaps

library(ggplot2)
library(reshape2)

# Calcular la matriz de correlación
correlation_matrix <- cor(datos[, sapply(datos, is.numeric)])

# Convertir la matriz de correlación a un formato adecuado para ggplot2
correlation_melted <- melt(correlation_matrix)

# Crear el heatmap con ggplot2
ggplot(data = correlation_melted, aes(Var1, Var2, fill = value)) +
  geom_tile() +
  scale_fill_gradient(low = "black", high = "blue") +
  labs(title = "Heatmap - Matriz de Correlación")

Visualización de imágenes

library(imager)
## Loading required package: magrittr
## 
## Attaching package: 'imager'
## The following object is masked from 'package:magrittr':
## 
##     add
## The following objects are masked from 'package:stats':
## 
##     convolve, spectrum
## The following object is masked from 'package:graphics':
## 
##     frame
## The following object is masked from 'package:base':
## 
##     save.image
# Ruta de la imagen
ruta_imagen <- "C:/Users/Usuario/Pictures/sapuri.jpeg"  

# Cargar la imagen
imagen <- load.image(ruta_imagen)

# Mostrar la imagen
plot(imagen)

Manipulación de datos no estructurados - texto

# Texto que tomaremos de ejemplo (Sinopsis del libro: "El corazón helado")
texto <- "
Una ambiciosa novela que narra a través de dos familias la historia reciente de nuestro país, y también el conflicto de las nuevas generaciones con la memoria.

El día de su muerte, Julio Carrión, poderoso hombre de negocios cuya fortuna se remonta a los años del franquismo, deja a sus hijos una sustanciosa herencia pero también muchos puntos oscuros de su pasado y de su experiencia en la Guerra Civil y en la División Azul. En su entierro, en febrero de 2005, su hijo Álvaro, el único que no ha querido dedicarse a los negocios familiares, se sorprende por la presencia de una mujer joven y atractiva, a la que nadie había visto antes y que parece delatar aspectos desconocidos de la vida íntima de su padre. Raquel Fernández Perea, por su parte, hija y nieta de exiliados en Francia, lo sabe en cambio casi todo sobre el pasado de sus progenitores y abuelos, a los que ha preguntado sobre su experiencia de la guerra y del exilio. Para ella sólo una historia permanece sin aclarar: la de una tarde en que acompañó a su abuelo, recién regresado a Madrid, y visitaron a unos desconocidos con los que intuyó que existía una deuda pendiente.

Álvaro y Raquel están condenados a encontrarse porque sus respectivas historias familiares, que son también la historia de muchas familias en España, desde la Guerra Civil hasta la Transición, forman parte de sí mismos y explican además sus orígenes, su presente. También porque, sin saberlo, se sentirán atraídos sin remedio.
"

# Convertir a minúsculas para la consistencia del texto
texto <- tolower(texto)
library(tokenizers)
## Warning: package 'tokenizers' was built under R version 4.3.2
# Tokenización en oraciones y palabras
oraciones <- tokenize_sentences(texto)
palabras <- tokenize_words(texto)
if (!require("quanteda")) {
  install.packages("quanteda")
  library(quanteda)
}
## Loading required package: quanteda
## Warning: package 'quanteda' was built under R version 4.3.2
## Warning in .recacheSubclasses(def@className, def, env): undefined subclass
## "ndiMatrix" of class "replValueSp"; definition not updated
## Warning in .recacheSubclasses(def@className, def, env): undefined subclass
## "pcorMatrix" of class "replValueSp"; definition not updated
## Package version: 3.3.1
## Unicode version: 13.0
## ICU version: 69.1
## Parallel computing: 8 of 8 threads used.
## See https://quanteda.io for tutorials and examples.
# Eliminar caracteres especiales y signos de puntuación para obtener palabras limpias
palabras_limpia <- gsub("[^a-zA-ZáéíóúüñÁÉÍÓÚÜÑ]", "", texto)

# Cargar las stopwords desde 'quanteda' en español
stopwords_es <- quanteda::stopwords(language = "es", source = "stopwords-iso")

# Crear tokens a partir del texto limpio
tokens_texto <- quanteda::tokens(palabras_limpia)

# Eliminar stopwords del texto limpio para obtener palabras filtradas
palabras_filtradas <- tokens_remove(tokens_texto, pattern = stopwords_es) %>%
  as.character()

# Muestra las palabras filtradas
print(palabras_filtradas)
## [1] "unaambiciosanovelaquenarraatravésdedosfamiliaslahistoriarecientedenuestropaísytambiénelconflictodelasnuevasgeneracionesconlamemoriaeldíadesumuertejuliocarriónpoderosohombredenegocioscuyafortunaseremontaalosañosdelfranquismodejaasushijosunasustanciosaherenciaperotambiénmuchospuntososcurosdesupasadoydesuexperienciaenlaguerracivilyenladivisiónazulensuentierroenfebrerodesuhijoálvaroelúnicoquenohaqueridodedicarsealosnegociosfamiliaressesorprendeporlapresenciadeunamujerjovenyatractivaalaquenadiehabíavistoantesyqueparecedelataraspectosdesconocidosdelavidaíntimadesupadreraquelfernándezpereaporsupartehijaynietadeexiliadosenfrancialosabeencambiocasitodosobreelpasadodesusprogenitoresyabuelosalosquehapreguntadosobresuexperienciadelaguerraydelexilioparaellasólounahistoriapermanecesinaclararladeunatardeenqueacompañóasuabueloreciénregresadoamadridyvisitaronaunosdesconocidosconlosqueintuyóqueexistíaunadeudapendienteálvaroyraquelestáncondenadosaencontrarseporquesusrespectivashistoriasfamiliaresquesontambiénlahistoriademuchasfamiliasenespañadesdelaguerracivilhastalatransiciónformanpartedesímismosyexplicanademássusorígenessupresentetambiénporquesinsaberlosesentiránatraídossinremedio"
# Lematización o Stemming 
stem_palabras <- unlist(lapply(palabras_filtradas, function(word) {
  if (nchar(word) > 4) {
    substr(word, 1, nchar(word) - 1)  
  } else {
    word
  }
}))

# Mostrar las palabras después de la normalización
print(stem_palabras)
## [1] "unaambiciosanovelaquenarraatravésdedosfamiliaslahistoriarecientedenuestropaísytambiénelconflictodelasnuevasgeneracionesconlamemoriaeldíadesumuertejuliocarriónpoderosohombredenegocioscuyafortunaseremontaalosañosdelfranquismodejaasushijosunasustanciosaherenciaperotambiénmuchospuntososcurosdesupasadoydesuexperienciaenlaguerracivilyenladivisiónazulensuentierroenfebrerodesuhijoálvaroelúnicoquenohaqueridodedicarsealosnegociosfamiliaressesorprendeporlapresenciadeunamujerjovenyatractivaalaquenadiehabíavistoantesyqueparecedelataraspectosdesconocidosdelavidaíntimadesupadreraquelfernándezpereaporsupartehijaynietadeexiliadosenfrancialosabeencambiocasitodosobreelpasadodesusprogenitoresyabuelosalosquehapreguntadosobresuexperienciadelaguerraydelexilioparaellasólounahistoriapermanecesinaclararladeunatardeenqueacompañóasuabueloreciénregresadoamadridyvisitaronaunosdesconocidosconlosqueintuyóqueexistíaunadeudapendienteálvaroyraquelestáncondenadosaencontrarseporquesusrespectivashistoriasfamiliaresquesontambiénlahistoriademuchasfamiliasenespañadesdelaguerracivilhastalatransiciónformanpartedesímismosyexplicanademássusorígenessupresentetambiénporquesinsaberlosesentiránatraídossinremedi"
if (!require("tm")) {
  install.packages("tm")
  library(tm)
}
## Loading required package: tm
## Warning: package 'tm' was built under R version 4.3.2
## Loading required package: NLP
## 
## Attaching package: 'NLP'
## The following objects are masked from 'package:quanteda':
## 
##     meta, meta<-
## The following object is masked from 'package:ggplot2':
## 
##     annotate
## 
## Attaching package: 'tm'
## The following object is masked from 'package:quanteda':
## 
##     stopwords
# Crear un corpus
corpus <- Corpus(VectorSource(texto))

# Preprocesamiento del corpus
corpus <- tm_map(corpus, content_transformer(tolower))  # Convertir a minúsculas
## Warning in tm_map.SimpleCorpus(corpus, content_transformer(tolower)):
## transformation drops documents
corpus <- tm_map(corpus, removePunctuation)  # Eliminar signos de puntuación
## Warning in tm_map.SimpleCorpus(corpus, removePunctuation): transformation drops
## documents
corpus <- tm_map(corpus, removeNumbers)  # Eliminar números
## Warning in tm_map.SimpleCorpus(corpus, removeNumbers): transformation drops
## documents
corpus <- tm_map(corpus, removeWords, stopwords("spanish"))  # Eliminar stopwords en español
## Warning in tm_map.SimpleCorpus(corpus, removeWords, stopwords("spanish")):
## transformation drops documents
corpus <- tm_map(corpus, stemDocument)  # Stemming
## Warning in tm_map.SimpleCorpus(corpus, stemDocument): transformation drops
## documents
# Crear la matriz término-documento con TF-IDF
matriz_tfidf <- as.matrix(DocumentTermMatrix(corpus, control = list(weighting = function(x) weightTfIdf(x))))
## Warning in TermDocumentMatrix.SimpleCorpus(x, control): custom functions are
## ignored
# Mostrar la matriz término-documento con TF-IDF
print(matriz_tfidf)
##     Terms
## Docs abuelo aclarar acompañó ademá ambiciosa aspecto atractiva atraído azul año
##    1      0       0        0     0         0       0         0       0    0   0
##     Terms
## Docs cambio carrión casi civil condenado conflicto cuya dedicars deja delatar
##    1      0       0    0     0         0         0    0        0    0       0
##     Terms
## Docs desconocido deuda división dos día encontrars entierro españa exiliado
##    1           0     0        0   0   0          0        0      0        0
##     Terms
## Docs exilio existía experiencia explican familia familiar febrero fernández
##    1      0       0           0        0       0        0       0         0
##     Terms
## Docs forman fortuna francia franquismo generacion guerra herencia hija hijo
##    1      0       0       0          0          0      0        0    0    0
##     Terms
## Docs historia hombr intuyó joven julio madrid memoria mismo mucha muert mujer
##    1        0     0      0     0     0      0       0     0     0     0     0
##     Terms
## Docs nadi narra negocio nieta novela nueva orígen oscuro padr parec part pasado
##    1    0     0       0     0      0     0      0      0    0     0    0      0
##     Terms
## Docs paí pendient perea permanec poderoso preguntado presencia present
##    1   0        0     0        0        0          0         0       0
##     Terms
## Docs progenitor punto querido raquel recient recién regresado remedio remonta
##    1          0     0       0      0       0      0         0       0       0
##     Terms
## Docs respectiva sabe saberlo sentirán sorprend sustanciosa sólo tard transición
##    1          0    0       0        0        0           0    0    0          0
##     Terms
## Docs travé vida visitaron visto álvaro íntima único
##    1     0    0         0     0      0      0     0
if (!require("sentimentr")) {
  install.packages("sentimentr")
  library(sentimentr)
}
## Loading required package: sentimentr
## Warning: package 'sentimentr' was built under R version 4.3.2
## 
## Attaching package: 'sentimentr'
## The following object is masked from 'package:imager':
## 
##     highlight
sentimientos <- sentiment(texto)
if (!require("udpipe")) {
  install.packages("udpipe")
  library(udpipe)
}
## Loading required package: udpipe
## Warning: package 'udpipe' was built under R version 4.3.2
# Descargar un modelo preentrenado que nos ayude
model <- udpipe_download_model(language = "spanish") 
## Downloading udpipe model from https://raw.githubusercontent.com/jwijffels/udpipe.models.ud.2.5/master/inst/udpipe-ud-2.5-191206/spanish-gsd-ud-2.5-191206.udpipe to C:/Users/Usuario/Documents/spanish-gsd-ud-2.5-191206.udpipe
##  - This model has been trained on version 2.5 of data from https://universaldependencies.org
##  - The model is distributed under the CC-BY-SA-NC license: https://creativecommons.org/licenses/by-nc-sa/4.0
##  - Visit https://github.com/jwijffels/udpipe.models.ud.2.5 for model license details.
##  - For a list of all models and their licenses (most models you can download with this package have either a CC-BY-SA or a CC-BY-SA-NC license) read the documentation at ?udpipe_download_model. For building your own models: visit the documentation by typing vignette('udpipe-train', package = 'udpipe')
## Downloading finished, model stored at 'C:/Users/Usuario/Documents/spanish-gsd-ud-2.5-191206.udpipe'
ud_model <- udpipe_load_model(model$file_model)

# Realizar tokenización y etiquetado de entidades para falcilitar la extracción
annotations <- udpipe_annotate(ud_model, x = texto, doc_id = 1)
entities <- annotations$entity

# Filtrar nombres de personas y ubicaciones
personas <- annotations$lemma[entities == "B-PER" | entities == "I-PER"]
ubicaciones <- annotations$lemma[entities == "B-LOC" | entities == "I-LOC"]

# Mostrar nombres de personas y ubicaciones extraídos
print("Nombres de personas:")
## [1] "Nombres de personas:"
print(personas)
## NULL
print("Ubicaciones:")
## [1] "Ubicaciones:"
print(ubicaciones)
## NULL

Conclusiones

Referencias