Este ejercicio acompaña a la guía de la sesión 2 sobre funciones, busca avanzar en el uso de funciones built-in comunes en R y desarrollar funciones propias.
El objetivo del ejercicio 2 es separar el dataset del ejercicio 1 en dos grupos en función de sus puntajes en narcisismo y comparar sus características. La
Completar las siguientes tareas:
Previo: abrir el script “ejercicio1”, cargar los datos del ejercicio 1 con la función load y decirle a R en qué directorio estamos trabajando [Session > Set Working Directory> To Source File Location] (ver instrucciones en ejercicio 1)
Soluciones
# paso i) ordeno la columna de narcisismo
o = order(datosLimpios$NPI16TOTAL, decreasing = TRUE)
# el vector o tiene la posición de las filas en orden decreciente según el puntaje de narcisismo
# paso ii) uso el orden de la columna de narcisismo para reordenar el data frame
datosLimpiosOrdenados = datosLimpios[o,]# primeras 30 filas del data frame
LosMasNarcis = head(datosLimpiosOrdenados, n = 30)
# últimas 30 filas del data frame
LosMenosNarcis = tail(datosLimpiosOrdenados, n = 30)
summary(LosMasNarcis)## Sex Age NPI16TOTAL GSESTOTAL ADTOTAL
## M:15 Min. :17.00 Min. : 6.0 Min. :21.0 Min. : 8.00
## F:15 1st Qu.:19.00 1st Qu.: 7.0 1st Qu.:25.0 1st Qu.:17.50
## Median :21.50 Median : 7.5 Median :26.0 Median :19.00
## Mean :23.00 Mean : 7.9 Mean :26.6 Mean :20.15
## 3rd Qu.:25.75 3rd Qu.: 8.0 3rd Qu.:28.0 3rd Qu.:23.00
## Max. :34.00 Max. :12.0 Max. :33.0 Max. :31.00
## NA's :3
## SDTOTAL Sign.Area Name.Area
## Min. :20.00 Min. :13.06 Min. :12.02
## 1st Qu.:27.75 1st Qu.:18.79 1st Qu.:14.80
## Median :31.00 Median :21.52 Median :17.07
## Mean :30.21 Mean :23.83 Mean :18.91
## 3rd Qu.:33.25 3rd Qu.:25.85 3rd Qu.:21.43
## Max. :37.00 Max. :49.15 Max. :34.54
## NA's :2
summary(LosMenosNarcis)## Sex Age NPI16TOTAL GSESTOTAL ADTOTAL
## M:12 Min. :18.0 Min. :0 Min. :23.00 Min. : 7.00
## F:18 1st Qu.:19.0 1st Qu.:0 1st Qu.:25.00 1st Qu.: 8.00
## Median :20.5 Median :0 Median :26.00 Median :11.50
## Mean :23.4 Mean :0 Mean :26.39 Mean :11.36
## 3rd Qu.:25.0 3rd Qu.:0 3rd Qu.:28.00 3rd Qu.:13.25
## Max. :40.0 Max. :0 Max. :31.00 Max. :22.00
## NA's :2 NA's :2
## SDTOTAL Sign.Area Name.Area
## Min. :15.00 Min. :12.91 Min. :10.84
## 1st Qu.:24.75 1st Qu.:17.00 1st Qu.:13.34
## Median :28.50 Median :21.78 Median :16.61
## Mean :27.86 Mean :23.20 Mean :21.02
## 3rd Qu.:33.00 3rd Qu.:28.55 3rd Qu.:21.25
## Max. :37.00 Max. :38.33 Max. :85.01
## NA's :2 NA's :3
# A simple vista hay diferencias en dominancia agresiva
# Hago una prueba t
t.test(LosMasNarcis$ADTOTAL, LosMenosNarcis$ADTOTAL)##
## Welch Two Sample t-test
##
## data: LosMasNarcis$ADTOTAL and LosMenosNarcis$ADTOTAL
## t = 7.6187, df = 49.571, p-value = 6.844e-10
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 6.472881 11.109129
## sample estimates:
## mean of x mean of y
## 20.14815 11.35714
outliers = function(x) {
# calculo los límites de outliers
mediaName = mean(x, na.rm = T) #la media
desvName = sd(x, na.rm = T) #el desvío
outUp = mediaName + 3*desvName #guardo el umbral en una variable
# encuentro los no outliers
NotOutliers = x <= outUp
# guardo el vector lógico que indica con cuáles me quedo
return(NotOutliers) }