library(readxl) # para cargar documentos de exel
## Warning: package 'readxl' was built under R version 4.3.3
library(dplyr) # para manipular elementos como matrix, data.frame y list
## Warning: package 'dplyr' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
title: “clase_8”
author: “Nicolas Trujillo Perdomo”
date: “2025-03-13” (date:“r Sys.Date()”)
output:
html_document:
toc: true
toc_float: true
number_sections: true
Ejemplo:
df <- list(numeros =c(1, 2, 3, 4, 5),
nombres =c("Ana", "Luis", "Carlos"), matriz =(matrix(1:9, nrow = 3, ncol = 3)))
print(df)
## $numeros
## [1] 1 2 3 4 5
##
## $nombres
## [1] "Ana" "Luis" "Carlos"
##
## $matriz
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
haciendo uso de una data.frame vamos a hacer uso de la siguiente funcion.
nombre<-c("Maura", "Camila", "Johan_s", "Elkin", "Alejandro", "Yandry", "Nicolas", "Dirley", "William", "Daniela", "Steven", "Yuliana", "Karen", "Jose", "Santiago", "Johan", "Santiago", "Daniela")
edad<-c(20, 21, 21, 18, 17, 19, 20, 19, 24, 18, 22, 20, 19, 21, 20, 19, 20, 19)
promedio<-c(3.5, 3.5, 3.5, 3.3, 3.3, 3.92, 3.74, 3.6, 3.5, 3.2, 3.3, 3.3, 3.5, 3.4, 3.5, 3.9, 3.7, 3.7)
semestre<-c(7, 8, 7, 3, 3, 7, 7, 7, 10, 7, 6, 8, 7, 7, 5, 5, 6, 5)
esta_nivelado<-c("si", "no", "no", "no", "no", "si", "si", "no", "no", "no", "no", "no", "no", "no", "no", "si", "no", "si")
datos<-data.frame(Estudiantes = nombre, edad, promedio, semestre, esta_nivelado)
print(datos)
## Estudiantes edad promedio semestre esta_nivelado
## 1 Maura 20 3.50 7 si
## 2 Camila 21 3.50 8 no
## 3 Johan_s 21 3.50 7 no
## 4 Elkin 18 3.30 3 no
## 5 Alejandro 17 3.30 3 no
## 6 Yandry 19 3.92 7 si
## 7 Nicolas 20 3.74 7 si
## 8 Dirley 19 3.60 7 no
## 9 William 24 3.50 10 no
## 10 Daniela 18 3.20 7 no
## 11 Steven 22 3.30 6 no
## 12 Yuliana 20 3.30 8 no
## 13 Karen 19 3.50 7 no
## 14 Jose 21 3.40 7 no
## 15 Santiago 20 3.50 5 no
## 16 Johan 19 3.90 5 si
## 17 Santiago 20 3.70 6 no
## 18 Daniela 19 3.70 5 si
Para filtrar los datos de la edad para aquellos mayores con 22 años.
library(dplyr)
datos_filtrado <- datos %>% filter(edad > 20)
print(datos_filtrado)
## Estudiantes edad promedio semestre esta_nivelado
## 1 Camila 21 3.5 8 no
## 2 Johan_s 21 3.5 7 no
## 3 William 24 3.5 10 no
## 4 Steven 22 3.3 6 no
## 5 Jose 21 3.4 7 no
dado un dataframe con valores faltantes o erroneos podemos acomudar la data con el siguiente codigo.
dat <- data.frame(Nombre = c("Ana", "Luis", "Carlos"), Edad = c(25, NA, 22))
print(dat)
## Nombre Edad
## 1 Ana 25
## 2 Luis NA
## 3 Carlos 22
dat$Edad[is.na(dat$Edad)] <- round(mean(dat$Edad, na.rm = TRUE)) # se hizo el uso inecesario de round() para aproximar el dato.
print(dat)
## Nombre Edad
## 1 Ana 25
## 2 Luis 24
## 3 Carlos 22