Importación de datos en R

Author

Edimer David Jaramillo

Importación de datos a R

Bibliotecas

Code
library(tidyverse)
library(janitor)
library(readxl)

Tubería en R

La tubería en R se obtiene con CTRL + Shift + M: |>

Importando excel

Code
encuesta_excel <- read_excel("datos-ejemplos/ejemeplos-importacion/encuesta_excel.xlsx")

encuesta_excel |> head()
  • Es posible consultar el nombre de las hojas del archivo de excel:
Code
excel_sheets("datos-ejemplos/ejemeplos-importacion/encuesta_excel.xlsx")
[1] "Sheet1" "hoja2" 

Importando csv (separado por comas)

Code
encuesta_csv_comas <- 
  read_csv("datos-ejemplos/ejemeplos-importacion/encuesta_comas.csv")

encuesta_csv_comas |> head()

Importando csv (separado por punto y coma)

Code
encuesta_csv_punto_coma <- 
  read_csv2("datos-ejemplos/ejemeplos-importacion/encuesta_punto_coma.csv")

encuesta_csv_punto_coma |> head()

Importando csv (separado por tabulador)

Code
encuesta_csv_tabulador <- 
  read_tsv("datos-ejemplos/ejemeplos-importacion/encuesta_tabular.csv")

encuesta_csv_tabulador |> head()

Importando csv (separado por otro delimitador)

Code
encuesta_csv_otro_delim <- 
  read_delim("datos-ejemplos/ejemeplos-importacion/encuesta_otro_delimitador.csv",
             delim = "|")

encuesta_csv_otro_delim |> head()

Tipos de variables

Tipos de datos en R

  • Con estas funciones podemos conocer el tipo de dato de cada columna del dataframe que fue importado:
    • str()
    • glimpse()
Code
encuesta_excel |> 
  str()
tibble [35 × 17] (S3: tbl_df/tbl/data.frame)
 $ fecha            : chr [1:35] "2024/02/08 9:16:49 p. m. GMT-5" "2024/02/08 9:33:45 p. m. GMT-5" "2024/02/09 11:32:54 a. m. GMT-5" "2024/02/09 12:46:16 p. m. GMT-5" ...
 $ promedio_acad    : num [1:35] 4.2 3.5 3.87 3.4 3.78 3.75 4.19 3.5 3.84 3.34 ...
 $ numero_nofav     : num [1:35] 3 6 9 2 6 5 7 8 7 5 ...
 $ horas_dormir     : num [1:35] 7 6 7 5 10 6 8 8 7 6 ...
 $ redes_sociales   : num [1:35] 3 5 3 2 3 3 3 2 6 5 ...
 $ relevencia_matem : num [1:35] 9 10 8 7 10 10 10 10 8 8 ...
 $ fecha_nac        : POSIXct[1:35], format: "2004-01-22" "2003-08-24" ...
 $ asignaturas      : num [1:35] 8 7 7 8 7 7 6 8 6 8 ...
 $ num_semestre     : num [1:35] 5 5 5 5 4 5 5 5 5 5 ...
 $ trabaja          : chr [1:35] "No" "No" "No" "No" ...
 $ asignatura_prefer: chr [1:35] "Estadística" "Topografía" "Humanística" "Humanidades" ...
 $ asignatura_dific : chr [1:35] "Álgebra lineal" "Cálculo diferencial" "Cálculos" "Cálculo diferencial" ...
 $ editar_carrera   : chr [1:35] "En mi carrera profesional agregaría unas asignaturas más que tengan que ver con programación y sus fundamentos" "Yo hasta el momento lo único que agregaría es que el enfoque y la importancia en cuanto a lo que pecuario sea mayor." "Creo que el currículo de la carrera esta muy completo." "los elementos que le agregaria seria que fuera mas practica, mas de  ejercer" ...
 $ aplicacion_ia    : chr [1:35] "La IA es muy útil en mi carrera profesional, pero siento que estamos siendo muy dependientes a ella y eso puede"| __truncated__ "Creo que es muy útil el uso de la inteligencia artificial en mi ejercicio profesional ya que la inteligencia ar"| __truncated__ "Pienso que ha sido una herramienta que facilita la realización de muchos trabajos, que debe ser usada de  maner"| __truncated__ "pues personalmente yo no estoy de acuerdo con la inteligenciaartificial ya que yo considero que asi como ha log"| __truncated__ ...
 $ tiene_pc         : chr [1:35] "Sí" "No" "Sí" "Sí" ...
 $ beca             : chr [1:35] "Sí" "No" "Sí" "No" ...
 $ edad             : num [1:35] 20.1 20.5 24.7 28.4 23.6 ...

Hacemos lo mismo con glimpse():

Code
encuesta_excel |> 
  glimpse()
Rows: 35
Columns: 17
$ fecha             <chr> "2024/02/08 9:16:49 p. m. GMT-5", "2024/02/08 9:33:4…
$ promedio_acad     <dbl> 4.20, 3.50, 3.87, 3.40, 3.78, 3.75, 4.19, 3.50, 3.84…
$ numero_nofav      <dbl> 3, 6, 9, 2, 6, 5, 7, 8, 7, 5, 7, 6, 3, 3, 1, 8, 9, 8…
$ horas_dormir      <dbl> 7, 6, 7, 5, 10, 6, 8, 8, 7, 6, 5, 6, 6, 1, 6, 12, 7,…
$ redes_sociales    <dbl> 3, 5, 3, 2, 3, 3, 3, 2, 6, 5, 1, 4, 5, 4, 3, 4, 1, 2…
$ relevencia_matem  <dbl> 9, 10, 8, 7, 10, 10, 10, 10, 8, 8, 6, 6, 7, 8, 10, 9…
$ fecha_nac         <dttm> 2004-01-22, 2003-08-24, 1999-06-23, 1995-10-14, 200…
$ asignaturas       <dbl> 8, 7, 7, 8, 7, 7, 6, 8, 6, 8, 8, 8, 7, 9, 8, 7, 9, 8…
$ num_semestre      <dbl> 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5…
$ trabaja           <chr> "No", "No", "No", "No", "Sí", "No", "No", "No", "No"…
$ asignatura_prefer <chr> "Estadística", "Topografía", "Humanística", "Humanid…
$ asignatura_dific  <chr> "Álgebra lineal", "Cálculo diferencial", "Cálculos",…
$ editar_carrera    <chr> "En mi carrera profesional agregaría unas asignatura…
$ aplicacion_ia     <chr> "La IA es muy útil en mi carrera profesional, pero s…
$ tiene_pc          <chr> "Sí", "No", "Sí", "Sí", "No", "Sí", "Sí", "Sí", "Sí"…
$ beca              <chr> "Sí", "No", "Sí", "No", "No", "Sí", "Sí", "Sí", "No"…
$ edad              <dbl> 20.08482, 20.49795, 24.66484, 28.35294, 23.62791, 20…
  • numeric
  • double
Code
dato_numerico <- c(1.3, 15, 60)
dato_numerico |> class()
[1] "numeric"
  • character (string)
Code
dato_caracter <- c("Medellín", "Bogotá", "Cali")
dato_caracter |> class()
[1] "character"
  • logical
Code
dato_booleano <- c(TRUE, FALSE)
dato_booleano |> class()
[1] "logical"
Code
dato_fecha1 <- c("2020-12-31", "2022-07-19", "2021-09-15")
dato_fecha1 |> class()
[1] "character"
  • ¿Cómo convertimos estos datos a fecha?
Code
dato_fecha2 <- ymd(dato_fecha1)
dato_fecha2 |> class()
[1] "Date"
Code
dato_meses1 <- c(
  "Enero",
  "Febrero",
  "Marzo",
  "Abril",
  "Mayo",
  "Junio",
  "Julio",
  "Agosto",
  "Septiembre",
  "Octubre",
  "Noviembre",
  "Diciembre"
)
dato_meses1 |> class()
[1] "character"
  • ¿Cómo podemos convertir de tipo character a tipo factor?
Code
dato_meses2 <- factor(
  dato_meses1,
  levels = c(
    "Enero",
    "Febrero",
    "Marzo",
    "Abril",
    "Mayo",
    "Junio",
    "Julio",
    "Agosto",
    "Septiembre",
    "Octubre",
    "Noviembre",
    "Diciembre"
  )
)

dato_meses2 |> class()
[1] "factor"

Acceder a columnas de un dataframe

Podemos acceder a las columnas de una base de datos a través del signo pesos: –> datos$nombre_variable

Code
encuesta_excel$edad
 [1] 20.0848153 20.4979480 24.6648427 28.3529412 23.6279070 20.5253078
 [7] 23.2175103 22.1751026 20.1641587 23.7865937 21.2038304 20.0410397
[13] 19.8248974 26.6210670 25.5321477 19.4883721 27.1162791 26.3036936
[19] 20.3036936 19.2558140 20.6155951 21.5512996 21.9753762 28.1751026
[25] 19.5485636 22.6347469 24.4377565 24.0820793 21.3871409 25.6607387
[31] 26.2489740 -0.4733242 24.1012312 20.0930233 23.7291382

¿Cómo sabemos de qué tipo es la variable anterior?

Code
encuesta_excel$edad |> 
  class()
[1] "numeric"