Comienza con R: Tu camino al análisis de datos desde cero

Analizando dataset Fake Instagram Profile usando R

Autor/a

Ángel Mora

Fecha de publicación

18 diciembre 2024

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.

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.

?det        # Ayuda sobre la función 'det'
help("det") # Equivalente a ?det
help.start() # Abre la página de ayuda general de R

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: TRUE o FALSE.
  • 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.

  1. Mostramos los primeros valores de esa columna
head(insta$fake)
[1] 0 0 0 0 0 0
  1. Seleccionamos las cuentas falsas:
falsas <- insta$fake == 1

Esto 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 falsas

Algunos 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.panels
Warning: 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.pic y fake, la description.length y external.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