# Borra todos los objetos del entorno
rm(list = ls())
# Libera memoria
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 531136 28.4 1187338 63.5 660385 35.3
## Vcells 966540 7.4 8388608 64.0 1769432 13.5
# Muestra en qué carpeta estás trabajando
getwd()
## [1] "C:/Users/brand/iCloudDrive/DESK2025SAID/CLASES 20262/LABORATORIO 4/practica5_primerexamen/practica5_resuelto/Markdawnsimulación"
#Ubicar carpeta en la pestaña de Session > Set working > Choose
Simularemos datos de 1050 personas con gastos e ingresos aleatorios bajo una distribución normal.
set.seed(321)
n <- 1050
ID <- paste0("ID_", seq_len(n))
ingreso <- round(rlnorm(n, meanlog = 9, sdlog = 0.5),0)
gasto <- round(ingreso * runif(n, 0.6, 0.9),0)
datos <- data.frame(
ID = ID,
Ingreso = ingreso,
Gasto = gasto
)
head(datos)
## ID Ingreso Gasto
## 1 ID_1 19005 15198
## 2 ID_2 5676 4377
## 3 ID_3 7052 4689
## 4 ID_4 7633 6309
## 5 ID_5 7616 5888
## 6 ID_6 9266 6447
resumen <- summary(datos[, c("Ingreso", "Gasto")])
resumen
## Ingreso Gasto
## Min. : 2001 Min. : 1339
## 1st Qu.: 5842 1st Qu.: 4414
## Median : 8192 Median : 6191
## Mean : 9368 Mean : 6998
## 3rd Qu.:11647 3rd Qu.: 8673
## Max. :34736 Max. :28815
if (!require(openxlsx)) install.packages("openxlsx")
## Warning: package 'openxlsx' was built under R version 4.3.3
library(openxlsx)
resumen_excel <- data.frame(
Estadistica = names(summary(datos$Ingreso)),
Ingreso = as.numeric(summary(datos$Ingreso)),
Gasto = as.numeric(summary(datos$Gasto))
)
wb <- createWorkbook()
addWorksheet(wb, "Resumen")
writeData(wb, "Resumen", resumen_excel)
saveWorkbook(wb, "resumen_datos.xlsx", overwrite = TRUE)
hist(datos$Gasto,
probability = TRUE,
main = "Distribución del gasto",
xlab = "Gasto",
col = "lightgreen",
border = "white")
curve(dnorm(x,
mean = mean(datos$Gasto),
sd = sd(datos$Gasto)),
col = "red",
lwd = 2,
add = TRUE)
plot(datos$Ingreso, datos$Gasto,
main = "Relación entre ingreso y gasto",
xlab = "Ingreso",
ylab = "Gasto",
pch = 19,
col = rgb(0.1, 0.2, 0.6, 0.5))
abline(lm(Gasto ~ Ingreso, data = datos),
col = "red",
lwd = 2)
write.csv(datos, "practica5B.csv", row.names = FALSE)