library(stringr)
library(modeest)
require(ggplot2)
library(plotly)
require(ggpubr)
Población que contiene la edad de 1000 niños y la persepción de que tan satisfechos estan con las clases
edad=sample(5:20,1000,replace = TRUE)
satisfacion=sample(1:5,1000,replace = TRUE)
datos_simulados =data.frame(
"edad" = edad,
"nivel_satisfacion"=as.character(satisfacion)
)
head(datos_simulados)
## edad nivel_satisfacion
## 1 12 1
## 2 6 2
## 3 20 1
## 4 6 4
## 5 10 1
## 6 5 1
mtc_cuantitativa = function(datos,name_var) {
cantidad=length(datos[[name_var]])
min = min(datos[[name_var]], na.rm = TRUE)
q1 = quantile(datos[[name_var]], probs = 0.25, na.rm = TRUE)
media = mean.default(datos[[name_var]], na.rm = TRUE)
media_rec = mean.default(datos[[name_var]], trim = 0.025, na.rm = TRUE)
mediana = median.default(datos[[name_var]], na.rm = TRUE)
moda = mfv(datos[[name_var]])
var = var(datos[[name_var]], na.rm = TRUE)
desvest = sd(datos[[name_var]], na.rm = TRUE)
q3 = quantile(datos[[name_var]], probs = 0.75, na.rm = TRUE)
max = max(datos[[name_var]], na.rm = TRUE)
descriptivos =as.numeric(c(cantidad,min, q1, media, media_rec, mediana, moda,var, desvest, q3, max))
nombres = c("Cantidad","Mínimo", "Q1", "Media", "Media recortada", "Mediana", "Moda","Varianza", "Desviación Estándar", "Q3", "Máximo")
desc_variables = as.data.frame(rbind(nombres,descriptivos))
print(str_c("Descriptivos", "-", name_var))
return(desc_variables)
}
graficar_cuantitativa=function(datos3,name_var){
g1=ggplot(datos3,aes(x=datos3[[name_var]]))+geom_histogram(bins=30)+ scale_x_continuous(name_var)+theme_bw()
##g2=boxplot(x=datos[[name_var]], ylab='Edan (Años)',col=c('lightblue'))
g3=ggplot(datos3,aes(x=datos3[[name_var]]))+geom_boxplot()+ scale_x_continuous(name_var)+theme_bw()
return(ggarrange(g1,g3,labels = c("A", "B"),ncol = 2, nrow = 1))
}
mtc_cualitativa=function(datos,name_var) {
print(str_c("Proporición de ", " - ", name_var," del conjunto de datos"))
return(prop.table(table(datos[[name_var]]))*100)
}
graficar_cualitativa=function(datos,name_var){
g1 =ggplot(datos, aes(datos[[name_var]]))+geom_bar()+ ggtitle(str_c("Cantidades de ", " - ", name_var))+xlab(name_var)+theme_bw()
g2=ggplot(datos, aes(x="", fill=factor(datos[[name_var]]))) + geom_bar( width=1) +ylab(name_var)+ coord_polar("y", start=0)
return(ggarrange(g1,g2,labels = c("A", "B"),ncol = 2, nrow = 1))
}
calcular_resultados_descriptivos=function(datos,name_var){
switch(class(datos[[name_var]]),
character = {
print(str_c("Descriptivos variable ",name_var))
print(mtc_cualitativa(datos,name_var))
print(graficar_cualitativa(datos,name_var))
},
integer = {
print(str_c("Descriptivos variable ",name_var))
print(mtc_cuantitativa(datos,name_var))
print(graficar_cuantitativa(datos,name_var))
},
numeric ={
print(str_c("Descriptivos variable ",name_var))
print(mtc_cuantitativa(datos,name_var))
print(graficar_cuantitativa(datos,name_var))
},
"Tipo de dato no contemplado"
)
}
variables=names(datos_simulados)
for (i in 1:length(variables)){
calcular_resultados_descriptivos(datos_simulados,variables[i])
}
## [1] "Descriptivos variable edad"
## [1] "Descriptivos-edad"
## V1 V2 V3 V4 V5 V6 V7
## nombres Cantidad Mínimo Q1 Media Media recortada Mediana Moda
## descriptivos 1000 5 9 12.62 12.6263157894737 13 8
## V8 V9 V10 V11
## nombres Varianza Desviación Estándar Q3 Máximo
## descriptivos 21.0226226226226 4.58504336104062 17 20
## [1] "Descriptivos variable nivel_satisfacion"
## [1] "Proporición de - nivel_satisfacion del conjunto de datos"
##
## 1 2 3 4 5
## 20.7 20.2 18.5 20.2 20.4