?det # Ayuda sobre la función 'det'
help("det") # Equivalente a ?det
help.start() # Abre la página de ayuda general de RComienza con R: Tu camino al análisis de datos desde cero
Analizando dataset Fake Instagram Profile usando R
Objetivo
Ofrecer una introducción al lenguaje R usando su más moderna versión.
Responderemos a preguntas con la exploración que realicemos del dataset.
Intentando responder a algunas preguntas, aprenderemos aspectos de dificultad creciente en el uso del Lenguaje R para Exploración de datasets - Análisis de Datos.
Dataset: Fake Instagram Profile Detection Model Kaggle.
- Lo podéis descargar también desde este enlace.
Empezando con R
RStudio
Editor: El editor de código permite escribir y ejecutar scripts de R.
Packages (Paquetes): Los paquetes son extensiones que añaden funcionalidades a R.
Help (Ayuda): R proporciona un sistema de ayuda integrado para consultar la documentación de funciones y paquetes.
Primeros pasos con R
- Calculadora: R puede utilizarse como una calculadora.
a <- 2 + sin(pi) # Calcula 2 + seno(pi) y lo asigna a la variable 'a'
a # Imprime el valor de 'a'Scripts - Un script es un archivo de texto que contiene código R. Permite guardar y reutilizar el código. Se recomienda crear un script para trabajar con el dataset.
Comentarios y agrupación de líneas:
# Esto es un comentario. Los comentarios se ignoran al ejecutar el código.
# Usar ; para separar comandos en una línea. Por ejemplo:
a <- 1; b <- 2
# Usar { } para agrupar comandos, especialmente dentro de funciones o estructuras de control.
if (a > 0) {
print("a es positivo")
}[1] "a es positivo"
Tipos de datos en R
- Logical:
TRUEoFALSE. - Numeric: Números reales (como 2.37 o
pi). - Character: Cadenas de texto (como
"Hola") - Vector: Secuencia de elementos del mismo tipo.
- data.frame, tibble: Estructura de datos tabular (como una tabla o una hoja de cálculo).
- Otros: integer, complex, raw, etc.
Importar datos
Importamos los datos usando la función read_csv() del paquete readr (incluido en tidyverse). RStudio ofrece una interfaz para importar datos, pero usar código es más reproducible. Nota: Import Dataset en el interfaz de Rstudio nos ayudaría.
library(tidyverse) # Carga el paquete tidyverse (incluye readr y otros paquetes útiles)
library(readr) # Carga el paquete readr, necesario para leer archivos csv. Si ya cargaste tidyverse, este paso no es necesario.
insta <- read_csv("datasets/train.csv") # Lee el archivo CSV y lo guarda en un data.frame llamado 'insta'
head(insta) # Muestra las primeras filas del data.frame# A tibble: 6 × 12
`profile pic` `nums/length username` `fullname words` `nums/length fullname`
<dbl> <dbl> <dbl> <dbl>
1 1 0.27 0 0
2 1 0 2 0
3 1 0.1 2 0
4 1 0 1 0
5 1 0 2 0
6 1 0 4 0
# ℹ 8 more variables: `name==username` <dbl>, `description length` <dbl>,
# `external URL` <dbl>, private <dbl>, `#posts` <dbl>, `#followers` <dbl>,
# `#follows` <dbl>, fake <dbl>
La variable insta es un data.frame (o, más precisamente, un tibble, una versión mejorada de data.frame del paquete tibble). Un data.frame no es más que una estructura de tabla: tiene filas y columnas.
class(insta)[1] "spec_tbl_df" "tbl_df" "tbl" "data.frame"
¿Qué hay en el dataset?
Comenzamos a explorar el dataset:
¿Cuales son las primeras/últimas filas del dataset?
Les echamos un vistazo:
head(insta) # Muestra las primeras filas# A tibble: 6 × 12
`profile pic` `nums/length username` `fullname words` `nums/length fullname`
<dbl> <dbl> <dbl> <dbl>
1 1 0.27 0 0
2 1 0 2 0
3 1 0.1 2 0
4 1 0 1 0
5 1 0 2 0
6 1 0 4 0
# ℹ 8 more variables: `name==username` <dbl>, `description length` <dbl>,
# `external URL` <dbl>, private <dbl>, `#posts` <dbl>, `#followers` <dbl>,
# `#follows` <dbl>, fake <dbl>
tail(insta) # Muestra las últimas filas# A tibble: 6 × 12
`profile pic` `nums/length username` `fullname words` `nums/length fullname`
<dbl> <dbl> <dbl> <dbl>
1 1 0.2 1 0
2 1 0.55 1 0.44
3 1 0.38 1 0.33
4 1 0.57 2 0
5 1 0.57 1 0
6 1 0.27 1 0
# ℹ 8 more variables: `name==username` <dbl>, `description length` <dbl>,
# `external URL` <dbl>, private <dbl>, `#posts` <dbl>, `#followers` <dbl>,
# `#follows` <dbl>, fake <dbl>
¿Qué datos tenemos almacenados en el dataset?
Resumen estadístico de las variables del dataset con la función summary()
summary(insta) # Genera un resumen estadístico de cada columna profile pic nums/length username fullname words nums/length fullname
Min. :0.0000 Min. :0.0000 Min. : 0.00 Min. :0.00000
1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.: 1.00 1st Qu.:0.00000
Median :1.0000 Median :0.0000 Median : 1.00 Median :0.00000
Mean :0.7014 Mean :0.1638 Mean : 1.46 Mean :0.03609
3rd Qu.:1.0000 3rd Qu.:0.3100 3rd Qu.: 2.00 3rd Qu.:0.00000
Max. :1.0000 Max. :0.9200 Max. :12.00 Max. :1.00000
name==username description length external URL private
Min. :0.00000 Min. : 0.00 Min. :0.0000 Min. :0.0000
1st Qu.:0.00000 1st Qu.: 0.00 1st Qu.:0.0000 1st Qu.:0.0000
Median :0.00000 Median : 0.00 Median :0.0000 Median :0.0000
Mean :0.03472 Mean : 22.62 Mean :0.1163 Mean :0.3819
3rd Qu.:0.00000 3rd Qu.: 34.00 3rd Qu.:0.0000 3rd Qu.:1.0000
Max. :1.00000 Max. :150.00 Max. :1.0000 Max. :1.0000
#posts #followers #follows fake
Min. : 0.0 Min. : 0 Min. : 0.0 Min. :0.0
1st Qu.: 0.0 1st Qu.: 39 1st Qu.: 57.5 1st Qu.:0.0
Median : 9.0 Median : 150 Median : 229.5 Median :0.5
Mean : 107.5 Mean : 85307 Mean : 508.4 Mean :0.5
3rd Qu.: 81.5 3rd Qu.: 716 3rd Qu.: 589.5 3rd Qu.:1.0
Max. :7389.0 Max. :15338538 Max. :7500.0 Max. :1.0
¿Cómo seleccionar una columna del dataset?
La forma más usual es utilizar el símbolo del dólar para seleccionar una columna:
insta$`#followers` # Selecciona la columna "#followers" [1] 1000 2740 159 414 151 669987 122 1078
[9] 1824 12945 9884 1188 945 12033 1962 50374
[17] 7007 1128 34670 2338 3516 1809 427 759
[25] 15338538 109 536 121354 2284 186 687 966
[33] 177 744 542073 5315651 267 691 120 105
[41] 890969 361853 3678 92192 12397719 380510 132 162
[49] 369 1476 1798 2118 812 7217 313 64
[57] 1759 404 1843 320377 108 384 60 802
[65] 51145 1582 223 18842 10240 539 399 581
[73] 166 417 266 33 494 178 470 807
[81] 162 417 17303 1439 91446 824 741 1267
[89] 4594 1135 1926 1068 815 565 2556 1312
[97] 699 4328 2487 673 730 59 289 19
[105] 3551 19512 2756 5406 459 218 796 1113
[113] 138 205 331 748 490 456 971 497
[121] 99 193 492 167 99 916 196 765
[129] 45 634 1383 650 484 200 192 553
[137] 27477 464 1057 413 389 505 941 2598
[145] 59 622 2719 216 881 870 265 1204
[153] 655 1662 14222 483 1204 408 303 125
[161] 229 357 137 255 87 326946 114 167
[169] 1247 585 135 722 714 39867 533 1158
[177] 45834 876 3003 1298 3800 1358 6741307 791
[185] 732075 373 162 309 135 244 67 984
[193] 751 781 1761 318 5282 5282 228 393
[201] 875 173 3896490 106 206 259 1013 738
[209] 1008 2441 416 516 8711 433 18515 70
[217] 5863 1677 617 31182 1152 8578 4347 319
[225] 189 743 11204 419 81 947 206 541
[233] 392 4177 265 272 425 150 711 89
[241] 742 96 77 195 9 10794 104 318
[249] 355 99 300 139 13 606 428 494
[257] 1261 68 205558 668 1456 410 298 254
[265] 1070 1167 335 346 1746 268 537 805
[273] 1504 104 380 257 1775 1456 265 1051
[281] 77 220 178 728 668 406 37 56
[289] 90 60 271 1 158 39 0 0
[297] 0 12 10 1 1 0 31 5
[305] 18 12 6 47 33 4 5 0
[313] 5 107 8 48 2 51 5 0
[321] 26 0 76 165 115 6 24 40
[329] 32 0 21 79 8 49 31 15
[337] 4 0 316 0 3 2 221 181
[345] 9 2 25 26 15 59 7 40
[353] 51 133 25 864 73 184 161 42
[361] 279 219 18 106 34 42 1 38
[369] 34 23 23 83 25 13 64 90
[377] 82 140 0 51 38 21 5 21
[385] 124 5 2 42 48 32 0 0
[393] 10 19 138 11 1 39 446 9
[401] 589 27 143 0 0 124 12 16
[409] 1 120 0 26 57 13 1031 42
[417] 70 0 46 834 389 43 23 5
[425] 4 17 182 108 43 77 32 0
[433] 40 53 67 122 18 24 35 119
[441] 6 34 272 53 818 82 40 21
[449] 59 102 576 19 66 310 16 15
[457] 47 88 51 505 159 77 61 7
[465] 11 49 15 1 17 15 358 20
[473] 50 57 12 218 78 16 39 15
[481] 30 85 77 49 16 8 34 45
[489] 49 15 92 75 10 23 22 55
[497] 16 7 86 3 12 14 24 52
[505] 16 17 50 136 178 50 207 178
[513] 16 49 49 37 21 356 46 49
[521] 49 44 42 47 48 75 115 53
[529] 32 39 3033 3003 34 218 210 1489
[537] 10 201 351 52 156 85 35 55
[545] 16 43 97 34 2346 49 2 40
[553] 332 14 65 20 26 72 55 77
[561] 31 57 58 47 31 96 126 39
[569] 66 87 15 166 66 96 57 150
¿Cuántas cuentas falsas hay?
Si una cuenta es falsa, en la columna fake tiene el valor 1.
- Mostramos los primeros valores de esa columna
head(insta$fake)[1] 0 0 0 0 0 0
- Seleccionamos las cuentas falsas:
falsas <- insta$fake == 1Esto da un vector donde tenemos valores TRUE (verdadero) y FALSE (falso). En el vector falsas, tendremos un FALSE por cada cuenta verdadera y un TRUE si la cuenta es falsa.
Para quedarnos con las filas del dataset donde se dan las cuentas falsas, se hace una selección o filtrado de las filas:
filas_falsas <- insta[falsas, ] # el espacio después de la coma significa que nos quedamos con todas la columnas, pero hemos seleccionado únicamente las filas donde el vector 'falsas' valga TRUE.Otra forma de seleccionar es con la función which():
cuentasF <- which(insta$fake == 0) # Obtiene los índices de las filas donde 'fake' es 0 (verdaderas)
cuentasV <- which(insta$fake == 1) # Obtiene los índices de las filas donde 'fake' es 1 (falsas)
#Otra forma de obtener las cuentas verdaderas
cuentasV <- which(!insta$fake==0)
Fdata_instaF <- insta[cuentasF, ] # Crea un nuevo data.frame con las cuentas verdaderas
Vdata_instaF <- insta[cuentasV, ] # Crea un nuevo data.frame con las cuentas falsasAlgunos manejos con variables, vectores, etc.
Guarda 20 aleatorios de esa columna en un vector
indices <- sample(1:nrow(insta), 20) # Genera 20 números aleatorios entre 1 y el número de filas de 'insta'
v1 <- insta$fake[indices] # Selecciona los valores de 'fake' correspondientes a los índices aleatorios
v1 # Imprime el vector v1 [1] 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0
Nota: la variable v1 es un vector
class(v1)[1] "numeric"
Podemos ordenarlo
v1 [1] 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0
sort(v1) # Ordena los elementos de v1 de forma ascendente [1] 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
Eliminamos valores repetidos:
unique(v1) # Devuelve un vector con los valores únicos de v1[1] 0 1
Calculamos cuántos elementos hay en el vector original y cuántos únicos:
length(v1) # Longitud del vector original[1] 20
length(unique(v1)) # Longitud del vector sin repetidos[1] 2
Ejercicio: Tomar los valores de la columna fullname words y lo guardamos en una variable (no repetidos) - mostramos los primeros valores.
palabras <- unique(insta$`fullname words`) # Obtiene los valores únicos de la columna 'fullname words'
head(palabras) # Muestra los primeros valores[1] 0 2 1 4 3 6
¿Hay valores NA (desconocidos) en el dataset? Es una pregunta que siempre nos deberíamos hacer
sum(is.na(insta)) # Suma el número total de NA en el data.frame[1] 0
Cuidado: al hacer operaciones con variables conteniendo NA
Vectores
- Para construir un vector, se usa el operador c (que es la abreviatura de la palabra inglesa “combine”, combinar.).
mi_profile <- c(1, 0, 1, NA, 1, 0) # Crea un vector numérico
mi_profile # Imprime el vector[1] 1 0 1 NA 1 0
Podemos usar las funciones class(), str() para obtener alguna información extra sobre las variables:
class(mi_profile) # Muestra la clase del vector[1] "numeric"
str(mi_profile) # Muestra la estructura del vector (tipo de datos y valores) num [1:6] 1 0 1 NA 1 0
Ya hemos visto head(), para mostrar los primeros elementos de una tabla (o de un vector), ahora vemos length(), que nos da la longitud de un vector, el número de elementos del mismo.
head(mi_profile) # Muestra los primeros elementos[1] 1 0 1 NA 1 0
length(mi_profile) # Muestra la longitud del vector[1] 6
Hay otras formas de construir vectores, especialmente si están sus elementos siguiendo una secuencia:
longitud_profile <- 1:10 # Secuencia del 1 al 10
longitud_profile [1] 1 2 3 4 5 6 7 8 9 10
longitud_profile <- rep(1, 10) # Repite el valor 1 diez veces
longitud_profile [1] 1 1 1 1 1 1 1 1 1 1
longitud_profile <- seq(from = 1, to = 10, by = 2) # Secuencia del 1 al 10 con incrementos de 2
longitud_profile[1] 1 3 5 7 9
Veamos ahora algunas operaciones con vectores.
v <- insta$`description length` # Asigna la columna 'description length' a 'v'
v [1] 53 44 0 82 0 81 50 0 71 40 54 54 0 103 98 46 0 48
[19] 63 106 40 35 30 27 0 109 0 132 126 122 138 0 50 35 56 9
[37] 0 81 134 0 2 0 23 138 35 93 4 1 4 23 91 57 108 30
[55] 82 12 54 0 12 0 3 39 0 68 129 57 64 42 71 0 70 74
[73] 8 35 0 0 28 18 28 36 2 11 70 29 24 21 81 34 40 12
[91] 0 59 15 54 16 73 24 0 26 0 0 0 0 28 55 140 122 113
[109] 38 0 23 0 89 30 0 0 0 12 123 0 0 0 40 0 33 0
[127] 5 0 23 35 150 26 149 129 0 18 74 0 59 148 0 15 46 5
[145] 98 55 19 71 133 150 43 37 35 87 59 0 0 9 12 0 0 95
[163] 0 46 123 117 26 0 58 0 30 62 137 149 14 19 131 0 5 0
[181] 11 0 27 10 72 3 51 44 0 73 70 35 13 105 91 0 48 48
[199] 126 0 53 8 67 20 26 86 51 26 18 96 17 0 62 86 148 1
[217] 39 35 103 0 61 44 0 0 0 112 123 24 34 19 0 42 50 67
[235] 134 101 0 0 17 0 32 0 80 2 0 146 0 0 0 0 6 0
[253] 0 0 64 0 0 0 49 23 120 34 25 0 12 0 9 1 18 34
[271] 23 19 139 13 50 46 30 26 0 0 0 27 37 31 20 7 0 0
[289] 0 0 0 0 24 0 43 0 0 0 0 0 0 0 0 0 0 0
[307] 0 0 0 0 0 0 0 0 0 0 0 0 43 0 0 0 13 0
[325] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[343] 9 0 0 0 0 18 0 10 61 0 0 0 0 0 0 0 0 0
[361] 22 0 0 0 2 0 146 0 6 50 0 0 0 39 0 0 0 0
[379] 0 5 91 2 0 0 0 0 37 0 0 0 0 0 0 0 0 0
[397] 0 0 148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[415] 149 0 0 0 0 0 22 0 0 0 0 0 2 0 0 0 0 0
[433] 0 20 0 0 0 0 0 0 0 0 148 0 50 0 2 0 0 0
[451] 0 0 0 0 34 0 0 0 0 0 0 0 32 0 0 0 0 0
[469] 0 0 59 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0
[487] 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
[505] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[523] 0 0 0 0 0 0 0 0 0 0 0 0 0 19 0 0 0 0
[541] 0 0 0 0 43 0 0 0 0 0 0 0 0 0 0 0 0 0
[559] 0 33 0 0 0 0 43 0 19 0 5 0 28 0 21 0 11 0
min(v) # Valor mínimo[1] 0
max(v) # Valor máximo[1] 150
mean(v) # Media[1] 22.62326
sum(v) # Suma[1] 13031
l1 <- v - mean(v) # Resta la media a cada elemento de v
exp(l1) # Exponencial de cada elemento de l1 [1] 1.557575e+13 1.922200e+09 1.495689e-10 6.123347e+25 1.495689e-10
[6] 2.252653e+25 7.754708e+11 1.495689e-10 1.022703e+21 3.520632e+07
[11] 4.233927e+13 4.233927e+13 1.495689e-10 8.075566e+34 5.441274e+32
[16] 1.420324e+10 1.495689e-10 1.049486e+11 3.430786e+17 1.622021e+36
[21] 3.520632e+07 2.372183e+05 1.598364e+03 7.957788e+01 1.495689e-10
[26] 3.257916e+37 1.495689e-10 3.174775e+47 7.869480e+44 1.441346e+43
[31] 1.280796e+50 1.495689e-10 7.754708e+11 2.372183e+05 3.128472e+14
[36] 1.211969e-06 1.495689e-10 2.252653e+25 2.345859e+48 1.495689e-10
[41] 1.105173e-09 1.495689e-10 1.457520e+00 1.280796e+50 2.372183e+05
[46] 3.666301e+30 8.166186e-09 4.065705e-10 8.166186e-09 1.457520e+00
[51] 4.961799e+29 8.504069e+14 1.198520e+37 1.598364e+03 6.123347e+25
[56] 2.434306e-05 4.233927e+13 1.495689e-10 2.434306e-05 1.495689e-10
[61] 3.004172e-09 1.295168e+07 1.495689e-10 5.091739e+19 1.580627e+46
[66] 8.504069e+14 9.325845e+17 2.601415e+08 1.022703e+21 1.495689e-10
[71] 3.762314e+20 2.054154e+22 4.458586e-07 2.372183e+05 1.495689e-10
[76] 1.495689e-10 2.163151e+02 9.820690e-03 2.163151e+02 6.448262e+05
[81] 1.105173e-09 8.955310e-06 3.762314e+20 5.880054e+02 3.961949e+00
[86] 1.972538e-01 2.252653e+25 8.726774e+04 3.520632e+07 2.434306e-05
[91] 1.495689e-10 6.283705e+15 4.889434e-04 4.233927e+13 1.329086e-03
[96] 7.556810e+21 3.961949e+00 1.495689e-10 2.927506e+01 1.495689e-10
[101] 1.495689e-10 1.495689e-10 1.495689e-10 2.163151e+02 1.150901e+14
[106] 9.463871e+50 1.441346e+43 1.778762e+39 4.764657e+06 1.495689e-10
[111] 1.457520e+00 1.495689e-10 6.715065e+28 1.598364e+03 1.495689e-10
[116] 1.495689e-10 1.495689e-10 2.434306e-05 3.917984e+43 1.495689e-10
[121] 1.495689e-10 1.495689e-10 3.520632e+07 1.495689e-10 3.210401e+04
[126] 1.495689e-10 2.219799e-08 1.495689e-10 1.457520e+00 2.372183e+05
[131] 2.084556e+55 2.927506e+01 7.668654e+54 1.580627e+46 1.495689e-10
[136] 9.820690e-03 2.054154e+22 1.495689e-10 6.283705e+15 2.821140e+54
[141] 1.495689e-10 4.889434e-04 1.420324e+10 2.219799e-08 5.441274e+32
[146] 1.150901e+14 2.669540e-02 1.022703e+21 8.629933e+47 2.084556e+55
[151] 7.071378e+08 1.752819e+06 2.372183e+05 9.087852e+27 6.283705e+15
[156] 1.495689e-10 1.495689e-10 1.211969e-06 2.434306e-05 1.495689e-10
[161] 1.495689e-10 2.709051e+31 1.495689e-10 1.420324e+10 3.917984e+43
[166] 9.711710e+40 2.927506e+01 1.495689e-10 2.311646e+15 1.495689e-10
[171] 1.598364e+03 1.262116e+17 4.711784e+49 7.668654e+54 1.798722e-04
[176] 2.669540e-02 1.167934e+47 1.495689e-10 2.219799e-08 1.495689e-10
[181] 8.955310e-06 1.495689e-10 7.957788e+01 3.294474e-06 2.779995e+21
[186] 3.004172e-09 2.107948e+12 1.922200e+09 1.495689e-10 7.556810e+21
[191] 3.762314e+20 2.372183e+05 6.617129e-05 5.967081e+35 4.961799e+29
[196] 1.495689e-10 1.049486e+11 1.049486e+11 7.869480e+44 1.495689e-10
[201] 1.557575e+13 4.458586e-07 1.873146e+19 7.256563e-02 2.927506e+01
[206] 3.343234e+27 2.107948e+12 2.927506e+01 9.820690e-03 7.363963e+31
[211] 3.612830e-03 1.495689e-10 1.262116e+17 3.343234e+27 2.821140e+54
[216] 4.065705e-10 1.295168e+07 2.372183e+05 8.075566e+34 1.495689e-10
[221] 4.643065e+16 1.922200e+09 1.495689e-10 1.495689e-10 1.495689e-10
[226] 6.543699e+38 3.917984e+43 3.961949e+00 8.726774e+04 2.669540e-02
[231] 1.495689e-10 2.601415e+08 7.754708e+11 1.873146e+19 2.345859e+48
[236] 1.092909e+34 1.495689e-10 1.495689e-10 3.612830e-03 1.495689e-10
[241] 1.181040e+04 1.495689e-10 8.287049e+24 1.105173e-09 1.495689e-10
[246] 3.817998e+53 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[251] 6.034041e-08 1.495689e-10 1.495689e-10 1.495689e-10 9.325845e+17
[256] 1.495689e-10 1.495689e-10 1.495689e-10 2.852797e+11 1.457520e+00
[261] 1.950649e+42 8.726774e+04 1.076969e+01 1.495689e-10 2.434306e-05
[266] 1.495689e-10 1.211969e-06 4.065705e-10 9.820690e-03 8.726774e+04
[271] 1.457520e+00 2.669540e-02 3.481563e+50 6.617129e-05 7.754708e+11
[276] 1.420324e+10 1.598364e+03 2.927506e+01 1.495689e-10 1.495689e-10
[281] 1.495689e-10 7.957788e+01 1.752819e+06 4.344805e+03 7.256563e-02
[286] 1.640222e-07 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[291] 1.495689e-10 1.495689e-10 3.961949e+00 1.495689e-10 7.071378e+08
[296] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[301] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[306] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[311] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[316] 1.495689e-10 1.495689e-10 1.495689e-10 7.071378e+08 1.495689e-10
[321] 1.495689e-10 1.495689e-10 6.617129e-05 1.495689e-10 1.495689e-10
[326] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[331] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[336] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[341] 1.495689e-10 1.495689e-10 1.211969e-06 1.495689e-10 1.495689e-10
[346] 1.495689e-10 1.495689e-10 9.820690e-03 1.495689e-10 3.294474e-06
[351] 4.643065e+16 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[356] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[361] 5.361915e-01 1.495689e-10 1.495689e-10 1.495689e-10 1.105173e-09
[366] 1.495689e-10 3.817998e+53 1.495689e-10 6.034041e-08 7.754708e+11
[371] 1.495689e-10 1.495689e-10 1.495689e-10 1.295168e+07 1.495689e-10
[376] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 2.219799e-08
[381] 4.961799e+29 1.105173e-09 1.495689e-10 1.495689e-10 1.495689e-10
[386] 1.495689e-10 1.752819e+06 1.495689e-10 1.495689e-10 1.495689e-10
[391] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[396] 1.495689e-10 1.495689e-10 1.495689e-10 2.821140e+54 1.495689e-10
[401] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[406] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[411] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 7.668654e+54
[416] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[421] 5.361915e-01 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[426] 1.495689e-10 1.105173e-09 1.495689e-10 1.495689e-10 1.495689e-10
[431] 1.495689e-10 1.495689e-10 1.495689e-10 7.256563e-02 1.495689e-10
[436] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[441] 1.495689e-10 1.495689e-10 2.821140e+54 1.495689e-10 7.754708e+11
[446] 1.495689e-10 1.105173e-09 1.495689e-10 1.495689e-10 1.495689e-10
[451] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 8.726774e+04
[456] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[461] 1.495689e-10 1.495689e-10 1.181040e+04 1.495689e-10 1.495689e-10
[466] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[471] 6.283705e+15 1.495689e-10 6.034041e-08 1.495689e-10 1.495689e-10
[476] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[481] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[486] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[491] 1.495689e-10 1.495689e-10 1.495689e-10 4.065705e-10 1.495689e-10
[496] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[501] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[506] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[511] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[516] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[521] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[526] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[531] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[536] 2.669540e-02 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[541] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 7.071378e+08
[546] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[551] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10
[556] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 3.210401e+04
[561] 1.495689e-10 1.495689e-10 1.495689e-10 1.495689e-10 7.071378e+08
[566] 1.495689e-10 2.669540e-02 1.495689e-10 2.219799e-08 1.495689e-10
[571] 2.163151e+02 1.495689e-10 1.972538e-01 1.495689e-10 8.955310e-06
[576] 1.495689e-10
Acceso a vectores
v <- insta$`description length` # Asignamos la columna 'description length' del dataframe 'insta' al vector 'v' para los ejemplos.
v[2] # Accede al segundo elemento del vector v. Los índices en R comienzan en 1.[1] 44
v[c(1, 3)] # Accede a los elementos en las posiciones 1 y 3 del vector v. Se usa un vector numérico para especificar múltiples índices.[1] 53 0
v[-1] # Accede a todos los elementos del vector v *excepto* el primero. El signo menos (-) delante del índice indica exclusión. [1] 44 0 82 0 81 50 0 71 40 54 54 0 103 98 46 0 48 63
[19] 106 40 35 30 27 0 109 0 132 126 122 138 0 50 35 56 9 0
[37] 81 134 0 2 0 23 138 35 93 4 1 4 23 91 57 108 30 82
[55] 12 54 0 12 0 3 39 0 68 129 57 64 42 71 0 70 74 8
[73] 35 0 0 28 18 28 36 2 11 70 29 24 21 81 34 40 12 0
[91] 59 15 54 16 73 24 0 26 0 0 0 0 28 55 140 122 113 38
[109] 0 23 0 89 30 0 0 0 12 123 0 0 0 40 0 33 0 5
[127] 0 23 35 150 26 149 129 0 18 74 0 59 148 0 15 46 5 98
[145] 55 19 71 133 150 43 37 35 87 59 0 0 9 12 0 0 95 0
[163] 46 123 117 26 0 58 0 30 62 137 149 14 19 131 0 5 0 11
[181] 0 27 10 72 3 51 44 0 73 70 35 13 105 91 0 48 48 126
[199] 0 53 8 67 20 26 86 51 26 18 96 17 0 62 86 148 1 39
[217] 35 103 0 61 44 0 0 0 112 123 24 34 19 0 42 50 67 134
[235] 101 0 0 17 0 32 0 80 2 0 146 0 0 0 0 6 0 0
[253] 0 64 0 0 0 49 23 120 34 25 0 12 0 9 1 18 34 23
[271] 19 139 13 50 46 30 26 0 0 0 27 37 31 20 7 0 0 0
[289] 0 0 0 24 0 43 0 0 0 0 0 0 0 0 0 0 0 0
[307] 0 0 0 0 0 0 0 0 0 0 0 43 0 0 0 13 0 0
[325] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
[343] 0 0 0 0 18 0 10 61 0 0 0 0 0 0 0 0 0 22
[361] 0 0 0 2 0 146 0 6 50 0 0 0 39 0 0 0 0 0
[379] 5 91 2 0 0 0 0 37 0 0 0 0 0 0 0 0 0 0
[397] 0 148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149
[415] 0 0 0 0 0 22 0 0 0 0 0 2 0 0 0 0 0 0
[433] 20 0 0 0 0 0 0 0 0 148 0 50 0 2 0 0 0 0
[451] 0 0 0 34 0 0 0 0 0 0 0 32 0 0 0 0 0 0
[469] 0 59 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[487] 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
[505] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[523] 0 0 0 0 0 0 0 0 0 0 0 0 19 0 0 0 0 0
[541] 0 0 0 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[559] 33 0 0 0 0 43 0 19 0 5 0 28 0 21 0 11 0
v[-c(1, 2)] # Accede a todos los elementos del vector v *excepto* el primero y el segundo. Se usa un vector numérico con el signo menos para excluir múltiples índices. [1] 0 82 0 81 50 0 71 40 54 54 0 103 98 46 0 48 63 106
[19] 40 35 30 27 0 109 0 132 126 122 138 0 50 35 56 9 0 81
[37] 134 0 2 0 23 138 35 93 4 1 4 23 91 57 108 30 82 12
[55] 54 0 12 0 3 39 0 68 129 57 64 42 71 0 70 74 8 35
[73] 0 0 28 18 28 36 2 11 70 29 24 21 81 34 40 12 0 59
[91] 15 54 16 73 24 0 26 0 0 0 0 28 55 140 122 113 38 0
[109] 23 0 89 30 0 0 0 12 123 0 0 0 40 0 33 0 5 0
[127] 23 35 150 26 149 129 0 18 74 0 59 148 0 15 46 5 98 55
[145] 19 71 133 150 43 37 35 87 59 0 0 9 12 0 0 95 0 46
[163] 123 117 26 0 58 0 30 62 137 149 14 19 131 0 5 0 11 0
[181] 27 10 72 3 51 44 0 73 70 35 13 105 91 0 48 48 126 0
[199] 53 8 67 20 26 86 51 26 18 96 17 0 62 86 148 1 39 35
[217] 103 0 61 44 0 0 0 112 123 24 34 19 0 42 50 67 134 101
[235] 0 0 17 0 32 0 80 2 0 146 0 0 0 0 6 0 0 0
[253] 64 0 0 0 49 23 120 34 25 0 12 0 9 1 18 34 23 19
[271] 139 13 50 46 30 26 0 0 0 27 37 31 20 7 0 0 0 0
[289] 0 0 24 0 43 0 0 0 0 0 0 0 0 0 0 0 0 0
[307] 0 0 0 0 0 0 0 0 0 0 43 0 0 0 13 0 0 0
[325] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0
[343] 0 0 0 18 0 10 61 0 0 0 0 0 0 0 0 0 22 0
[361] 0 0 2 0 146 0 6 50 0 0 0 39 0 0 0 0 0 5
[379] 91 2 0 0 0 0 37 0 0 0 0 0 0 0 0 0 0 0
[397] 148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 0
[415] 0 0 0 0 22 0 0 0 0 0 2 0 0 0 0 0 0 20
[433] 0 0 0 0 0 0 0 0 148 0 50 0 2 0 0 0 0 0
[451] 0 0 34 0 0 0 0 0 0 0 32 0 0 0 0 0 0 0
[469] 59 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[487] 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
[505] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[523] 0 0 0 0 0 0 0 0 0 0 0 19 0 0 0 0 0 0
[541] 0 0 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 33
[559] 0 0 0 0 43 0 19 0 5 0 28 0 21 0 11 0
Reciclaje
v + 1 # El `1` se repite tantas veces como la longitud del vector v para poder hacer la operación elemento a elemento. [1] 54 45 1 83 1 82 51 1 72 41 55 55 1 104 99 47 1 49
[19] 64 107 41 36 31 28 1 110 1 133 127 123 139 1 51 36 57 10
[37] 1 82 135 1 3 1 24 139 36 94 5 2 5 24 92 58 109 31
[55] 83 13 55 1 13 1 4 40 1 69 130 58 65 43 72 1 71 75
[73] 9 36 1 1 29 19 29 37 3 12 71 30 25 22 82 35 41 13
[91] 1 60 16 55 17 74 25 1 27 1 1 1 1 29 56 141 123 114
[109] 39 1 24 1 90 31 1 1 1 13 124 1 1 1 41 1 34 1
[127] 6 1 24 36 151 27 150 130 1 19 75 1 60 149 1 16 47 6
[145] 99 56 20 72 134 151 44 38 36 88 60 1 1 10 13 1 1 96
[163] 1 47 124 118 27 1 59 1 31 63 138 150 15 20 132 1 6 1
[181] 12 1 28 11 73 4 52 45 1 74 71 36 14 106 92 1 49 49
[199] 127 1 54 9 68 21 27 87 52 27 19 97 18 1 63 87 149 2
[217] 40 36 104 1 62 45 1 1 1 113 124 25 35 20 1 43 51 68
[235] 135 102 1 1 18 1 33 1 81 3 1 147 1 1 1 1 7 1
[253] 1 1 65 1 1 1 50 24 121 35 26 1 13 1 10 2 19 35
[271] 24 20 140 14 51 47 31 27 1 1 1 28 38 32 21 8 1 1
[289] 1 1 1 1 25 1 44 1 1 1 1 1 1 1 1 1 1 1
[307] 1 1 1 1 1 1 1 1 1 1 1 1 44 1 1 1 14 1
[325] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[343] 10 1 1 1 1 19 1 11 62 1 1 1 1 1 1 1 1 1
[361] 23 1 1 1 3 1 147 1 7 51 1 1 1 40 1 1 1 1
[379] 1 6 92 3 1 1 1 1 38 1 1 1 1 1 1 1 1 1
[397] 1 1 149 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[415] 150 1 1 1 1 1 23 1 1 1 1 1 3 1 1 1 1 1
[433] 1 21 1 1 1 1 1 1 1 1 149 1 51 1 3 1 1 1
[451] 1 1 1 1 35 1 1 1 1 1 1 1 33 1 1 1 1 1
[469] 1 1 60 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1
[487] 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1
[505] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[523] 1 1 1 1 1 1 1 1 1 1 1 1 1 20 1 1 1 1
[541] 1 1 1 1 44 1 1 1 1 1 1 1 1 1 1 1 1 1
[559] 1 34 1 1 1 1 44 1 20 1 6 1 29 1 22 1 12 1
v + c(1, 0) # Aquí igual, el vector c(1, 0) se repite cíclicamente para completar el tamaño del vector v. Así, a la primera componente de v se le suma 1, a la segunda, 0; a la tercera, de nuevo 1; a la cuarta, 0; ... [1] 54 44 1 82 1 81 51 0 72 40 55 54 1 103 99 46 1 48
[19] 64 106 41 35 31 27 1 109 1 132 127 122 139 0 51 35 57 9
[37] 1 81 135 0 3 0 24 138 36 93 5 1 5 23 92 57 109 30
[55] 83 12 55 0 13 0 4 39 1 68 130 57 65 42 72 0 71 74
[73] 9 35 1 0 29 18 29 36 3 11 71 29 25 21 82 34 41 12
[91] 1 59 16 54 17 73 25 0 27 0 1 0 1 28 56 140 123 113
[109] 39 0 24 0 90 30 1 0 1 12 124 0 1 0 41 0 34 0
[127] 6 0 24 35 151 26 150 129 1 18 75 0 60 148 1 15 47 5
[145] 99 55 20 71 134 150 44 37 36 87 60 0 1 9 13 0 1 95
[163] 1 46 124 117 27 0 59 0 31 62 138 149 15 19 132 0 6 0
[181] 12 0 28 10 73 3 52 44 1 73 71 35 14 105 92 0 49 48
[199] 127 0 54 8 68 20 27 86 52 26 19 96 18 0 63 86 149 1
[217] 40 35 104 0 62 44 1 0 1 112 124 24 35 19 1 42 51 67
[235] 135 101 1 0 18 0 33 0 81 2 1 146 1 0 1 0 7 0
[253] 1 0 65 0 1 0 50 23 121 34 26 0 13 0 10 1 19 34
[271] 24 19 140 13 51 46 31 26 1 0 1 27 38 31 21 7 1 0
[289] 1 0 1 0 25 0 44 0 1 0 1 0 1 0 1 0 1 0
[307] 1 0 1 0 1 0 1 0 1 0 1 0 44 0 1 0 14 0
[325] 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
[343] 10 0 1 0 1 18 1 10 62 0 1 0 1 0 1 0 1 0
[361] 23 0 1 0 3 0 147 0 7 50 1 0 1 39 1 0 1 0
[379] 1 5 92 2 1 0 1 0 38 0 1 0 1 0 1 0 1 0
[397] 1 0 149 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
[415] 150 0 1 0 1 0 23 0 1 0 1 0 3 0 1 0 1 0
[433] 1 20 1 0 1 0 1 0 1 0 149 0 51 0 3 0 1 0
[451] 1 0 1 0 35 0 1 0 1 0 1 0 33 0 1 0 1 0
[469] 1 0 60 0 7 0 1 0 1 0 1 0 1 0 1 0 1 0
[487] 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0
[505] 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
[523] 1 0 1 0 1 0 1 0 1 0 1 0 1 19 1 0 1 0
[541] 1 0 1 0 44 0 1 0 1 0 1 0 1 0 1 0 1 0
[559] 1 33 1 0 1 0 44 0 20 0 6 0 29 0 22 0 12 0
¿Qué hace el siguiente comando?
v[c(TRUE,FALSE)] [1] 53 0 0 50 71 54 0 98 0 63 40 30 0 0 126 138 50 56
[19] 0 134 2 23 35 4 4 91 108 82 54 12 3 0 129 64 71 70
[37] 8 0 28 28 2 70 24 81 40 0 15 16 24 26 0 0 55 122
[55] 38 23 89 0 0 123 0 40 33 5 23 150 149 0 74 59 0 46
[73] 98 19 133 43 35 59 0 12 0 0 123 26 58 30 137 14 131 5
[91] 11 27 72 51 0 70 13 91 48 126 53 67 26 51 18 17 62 148
[109] 39 103 61 0 0 123 34 0 50 134 0 17 32 80 0 0 0 6
[127] 0 64 0 49 120 25 12 9 18 23 139 50 30 0 0 37 20 0
[145] 0 0 24 43 0 0 0 0 0 0 0 0 0 0 0 43 0 13
[163] 0 0 0 0 0 0 0 0 0 9 0 0 0 61 0 0 0 0
[181] 22 0 2 146 6 0 0 0 0 0 91 0 0 37 0 0 0 0
[199] 0 148 0 0 0 0 0 0 0 149 0 0 22 0 0 2 0 0
[217] 0 0 0 0 0 148 50 2 0 0 0 34 0 0 0 32 0 0
[235] 0 59 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[253] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[271] 0 0 43 0 0 0 0 0 0 0 0 0 43 19 5 28 21 11
Funciones
Veamos con un ejemplo como se definen funciones:
valores_distintos <- function(x){
x1 <- unique(x)
l1 <- length(x1)
return(l1)
}
valores_distintos(insta$`profile pic`)[1] 2
y de cómo usar funciones vectoriales:
sapply(insta, function(x) sum(is.na(x))) profile pic nums/length username fullname words
0 0 0
nums/length fullname name==username description length
0 0 0
external URL private #posts
0 0 0
#followers #follows fake
0 0 0
valores_unicos <- sapply(insta, valores_distintos)
valores_unicos profile pic nums/length username fullname words
2 54 9
nums/length fullname name==username description length
25 2 104
external URL private #posts
2 2 193
#followers #follows fake
372 400 2
valores_unicos <- sapply(insta, function(x) length(unique(x)))
valores_unicos profile pic nums/length username fullname words
2 54 9
nums/length fullname name==username description length
25 2 104
external URL private #posts
2 2 193
#followers #follows fake
372 400 2
Relaciones entre variables
A modo de curiosidad, para ver la potencia de R, veamos:
- Algún gráfico:
#install.packages('psych') # Si no se ha instalado antes esta librería, hay que ejecutar esto
library(psych) # Carga el paquete psych, que proporciona la función pairs.panelsWarning: package 'psych' was built under R version 4.3.3
Attaching package: 'psych'
The following objects are masked from 'package:ggplot2':
%+%, alpha
pairs.panels(insta, main = "Pares de variables") # Crea un panel de gráficos de dispersión para todas las combinaciones de variables en 'insta'. 'main' añade un título al gráfico.
cor_matrix <- cor(insta) # Calcula la matriz de correlación entre las variables numéricas en 'insta'.
cor_matrix # Imprime la matriz de correlación. profile pic nums/length username fullname words
profile pic 1.00000000 -0.36408701 0.21329514
nums/length username -0.36408701 1.00000000 -0.22547213
fullname words 0.21329514 -0.22547213 1.00000000
nums/length fullname -0.13175622 0.40856654 -0.09434799
name==username -0.12490287 0.05688965 -0.08296878
description length 0.36789194 -0.32117027 0.27252216
external URL 0.23672932 -0.23712479 0.19656239
private 0.11473196 -0.06371257 -0.08907008
#posts 0.16957023 -0.15744211 0.07335018
#followers 0.06113663 -0.06278509 0.03322460
#follows 0.19483278 -0.17241327 0.09485496
fake -0.63731535 0.58768653 -0.29879258
nums/length fullname name==username description length
profile pic -0.13175622 -0.124902870 0.367891938
nums/length username 0.40856654 0.056889649 -0.321170271
fullname words -0.09434799 -0.082968780 0.272522165
nums/length fullname 1.00000000 0.291149086 -0.117521050
name==username 0.29114909 1.000000000 -0.064813853
description length -0.11752105 -0.064813853 1.000000000
external URL -0.08872418 -0.039232382 0.482313071
private -0.03003033 0.046084001 -0.110328832
#posts -0.05771550 -0.049808246 0.144823702
#followers -0.02703471 -0.017760756 0.005929455
#follows -0.06797109 -0.009529101 0.226561422
fake 0.24678210 0.170694729 -0.460824593
external URL private #posts #followers
profile pic 0.23672932 0.11473196 0.16957023 0.061136635
nums/length username -0.23712479 -0.06371257 -0.15744211 -0.062785090
fullname words 0.19656239 -0.08907008 0.07335018 0.033224604
nums/length fullname -0.08872418 -0.03003033 -0.05771550 -0.027034712
name==username -0.03923238 0.04608400 -0.04980825 -0.017760756
description length 0.48231307 -0.11032883 0.14482370 0.005929455
external URL 1.00000000 -0.16261231 0.16500846 0.027188730
private -0.16261231 1.00000000 -0.08749503 -0.073472710
#posts 0.16500846 -0.08749503 1.00000000 0.321385480
#followers 0.02718873 -0.07347271 0.32138548 1.000000000
#follows 0.14251936 -0.05754247 0.09822504 -0.011065994
fake -0.36280938 -0.02858602 -0.24535515 -0.093688783
#follows fake
profile pic 0.194832776 -0.63731535
nums/length username -0.172413275 0.58768653
fullname words 0.094854964 -0.29879258
nums/length fullname -0.067971092 0.24678210
name==username -0.009529101 0.17069473
description length 0.226561422 -0.46082459
external URL 0.142519361 -0.36280938
private -0.057542468 -0.02858602
#posts 0.098225040 -0.24535515
#followers -0.011065994 -0.09368878
#follows 1.000000000 -0.22483522
fake -0.224835224 1.00000000
table(insta$fake) # Recuento de los valores
0 1
288 288
- Correlaciones significativas entre
profile.picyfake, ladescription.lengthyexternal.URL
threshold <- 0.4
cor_table <- data.frame(as.table(cor_matrix)) %>%
rename(Correlation = Freq)
variables <- colnames(insta)
n_variables <- length(insta)
medium_point <- n_variables / 2
cor_table %>%
filter(as.character(Var1) > as.character(Var2) & abs(Correlation) > threshold) %>%
arrange(desc(abs(Correlation))) Var1 Var2 Correlation
1 profile pic fake -0.6373153
2 nums/length username fake 0.5876865
3 external URL description length 0.4823131
4 fake description length -0.4608246
5 nums/length username nums/length fullname 0.4085665