# Si modeest no está instalado y cargado
install.packages("modeest")
library(modeest)
Problema
Cuando existen múltiples valores con la misma frecuencia, mlv devuelve la media de dichos valores. Por ejemplo en la columna Girth del data frame trees.
mlv(trees$Girth, method = "mfv")[1]
$M
[1] 13.325
El valor anterior no existe en nuestros datos. Es el promedio de las múltiples modas: 11, 11,4, 12,9 y 18.
Solución
Para obtener los valores correspondientes a las múltiples modas, emplearemos dos opciones: funciones del paquete base o del paquete dplyr.
- Paquete base
# base-package
trees_nuevo <- subset(data.frame(table(trees$Girth)), Freq == max(Freq))
Var1 Freq
7 11 2
11 11.4 2
14 12.9 2
26 18 2
mean(as.numeric(as.character(trees_nuevo$Var1))) # factor a numérico
[1] 13.325
- Paquete dplyr
# dplyr
trees_nuevo <- trees %>%
count(Girth) %>%
filter(n == max(n))
Source: local data frame [4 x 2]
Girth n
1 11.0 2
2 11.4 2
3 12.9 2
4 18.0 2
mean(trees_nuevo$Girth)
[1] 13.325
Entradas relacionadas
No hay comentarios:
Publicar un comentario