Code
library(tidyverse)
library(janitor)
library(readxl)
library(tidyverse)
library(janitor)
library(readxl)
La tubería en R se obtiene con CTRL + Shift + M: |>
<- read_excel("datos/encuesta_excel.xlsx")
encuesta_excel
|> head() encuesta_excel
excel_sheets("datos/archivo-ejemplo-hojas-excel.xlsx")
[1] "Ejemplo1" "ejemplo2 "
<-
encuesta_csv_comas read_csv("datos/encuesta_comas.csv")
|> head() encuesta_csv_comas
<-
encuesta_csv_punto_coma read_csv2("datos/encuesta_punto_coma.csv")
|> head() encuesta_csv_punto_coma
<-
encuesta_csv_tabulador read_tsv("datos/encuesta_tabular.csv")
|> head() encuesta_csv_tabulador
<-
encuesta_csv_otro_delim read_delim("datos/encuesta_otro_delimitador.csv", delim = "|")
|> head() encuesta_csv_otro_delim
str()
glimpse()
|>
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()
:
|>
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…
Podemos acceder a las columnas de una base de datos a través del signo pesos: –> datos$nombre_variable
$edad encuesta_excel
[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?
$edad |>
encuesta_excelclass()
[1] "numeric"
<-
nombres_var c("fecha",
"promedio_acad",
"numero_nofav",
"horas_dormir",
"redes_sociales",
"relevencia_matem",
"fecha_nac",
"asignaturas",
"num_semestre",
"trabaja",
"asignatura_prefer",
"asignatura_dific",
"editar_carrera",
"aplicacion_ia",
"tiene_pc",
"beca")
<-
df_encuesta_inicial read_csv("datos/Encuesta.csv") |>
clean_names()
|> head() df_encuesta_inicial
<-
df_encuesta_final |>
df_encuesta_inicial filter(x1_cual_es_su_promedio_academico_actual != "50") |>
set_names(nombres_var) |>
mutate(
promedio_acad = str_replace_all(promedio_acad, ",", "."),
promedio_acad = as.numeric(promedio_acad),
numero_nofav = str_replace_all(numero_nofav, "tres", "3"),
numero_nofav = as.numeric(numero_nofav),
horas_dormir = parse_number(horas_dormir)
|>
) mutate(
redes_sociales = str_replace_all(
redes_sociales,"Tiktok, Youtube, Pinterest, instagram, Spotify, Whatsapp",
"6"
),redes_sociales = str_replace_all(redes_sociales,
"WhatsApp",
"1"),
redes_sociales = str_replace_all(redes_sociales,
"instagram, x",
"2"),
redes_sociales = str_replace_all(
redes_sociales,"Facebook, Twitter, WhatsApp, Telegram, Snapchat, Tik Tok, Instagram",
"7"
),redes_sociales = str_replace_all(redes_sociales,
"Instagram, Facebook",
"2"),
redes_sociales = str_replace_all(redes_sociales,
"Instagram,facebook",
"2"),
redes_sociales = str_replace_all(
redes_sociales,"Facebook, Twitter, 1, Telegram, Snapchat, Tik Tok, Instagram",
"6"
),redes_sociales = as.numeric(redes_sociales),
asignaturas = str_replace(asignaturas,
"Siete materias",
"7"),
asignaturas = as.numeric(asignaturas),
num_semestre = str_replace(num_semestre,
"Quinto semestre",
"5"),
num_semestre = str_replace(num_semestre,
"Cuarto",
"4"),
num_semestre = as.numeric(num_semestre),
asignatura_prefer = str_to_sentence(asignatura_prefer),
asignatura_prefer =
str_replace_all(asignatura_prefer,
"Botánica y fisiología vegetal",
"Botánica"),
asignatura_prefer =
str_replace_all(asignatura_prefer,
"Botanica y fisiologia vegetal",
"Botánica"),
asignatura_prefer =
str_replace_all(asignatura_prefer,
"Botanica",
"Botánica"),
asignatura_prefer =
str_replace_all(asignatura_prefer,
"Topografia",
"Topografía"),
asignatura_dific = str_to_sentence(asignatura_dific),
asignatura_dific =
str_replace_all(asignatura_dific,
"Calculo",
"Cálculo diferencial"),
asignatura_dific =
str_replace_all(asignatura_dific,
"Calculo 1",
"Cálculo diferencial"),
asignatura_dific =
str_replace_all(asignatura_dific,
"Calculo diferencial",
"Cálculo diferencial"),
asignatura_dific =
str_replace_all(asignatura_dific,
"Calculo integral",
"Cálculo integral"),
asignatura_dific =
str_replace_all(asignatura_dific,
"Algebra lineal",
"Álgebra lineal"),
asignatura_dific =
str_replace_all(
asignatura_dific,"Ecuaciones diferenciales y inglés.",
"Ecuaciones diferenciales"
),asignatura_dific =
str_replace_all(asignatura_dific,
"Cálculo diferencial integral",
"Cálculos"),
asignatura_dific =
str_replace_all(asignatura_dific,
"Los calculos",
"Cálculos"),
asignatura_dific =
str_replace_all(
asignatura_dific,"Cálculo diferencial 1",
"Cálculo diferencial"
),asignatura_dific =
str_replace_all(
asignatura_dific,"Cálculo diferencial diferencial",
"Cálculo diferencial"
),asignatura_dific =
str_replace_all(
asignatura_dific,"Cálculo diferencial vectorial",
"Cálculo diferencial"
),fecha_nac = if_else(
== "0095-12-18",
fecha_nac true = ymd("1995-12-18"),
false = fecha_nac
),edad = as.numeric((Sys.Date() - fecha_nac) / 365.5)
)
|> head() df_encuesta_final