En R, "media" y "mediana" son funciones estándar que hacen lo que se espera. La función mode()
le indica el modo de almacenamiento interno del objeto, no el valor que más aparece en su argumento. Pero, ¿existe una función de biblioteca estándar que implemente el modo estadístico para un vector (o lista)?
Existe el paquete modeest
que proporciona estimadores de la moda de datos univariantes unimodales (y a veces multimodales) y valores de las modas de distribuciones de probabilidad habituales.
mySamples <- c(19, 4, 5, 7, 29, 19, 29, 13, 25, 19)
library(modeest)
mlv(mySamples, method = "mfv")
Mode (most likely value): 19
Bickel's modal skewness: -0.1
Call: mlv.default(x = mySamples, method = "mfv")
Para más información ver esta página
encontré esto en la lista de correo de r, espero que sea útil. También es lo que estaba pensando de todos modos. Usted querrá table() los datos, ordenar y luego elegir el primer nombre. Es un poco complicado pero debería funcionar.
names(sort(-table(x)))[1]
R tiene tantos paquetes complementarios que algunos de ellos pueden proporcionar el modo [estadístico] de una lista/serie/vector numérico.
Sin embargo, la biblioteca estándar de R no parece tener un método incorporado. Una forma de solucionar esto es utilizar alguna construcción como la siguiente (y convertirla en una función si la utiliza a menudo...):
mySamples <- c(19, 4, 5, 7, 29, 19, 29, 13, 25, 19)
tabSmpl<-tabulate(mySamples)
SmplMode<-which(tabSmpl== max(tabSmpl))
if(sum(tabSmpl == max(tabSmpl))>1) SmplMode<-NA
> SmplMode
[1] 19
Para una lista de muestra más grande, uno debería considerar el uso de una variable temporal para el valor max(tabSmpl) (no sé si R optimizaría esto automáticamente)
Referencia: ver "¿Qué pasa con la mediana y la moda?" en esta Lección de R de inicio
Esto parece confirmar que (al menos en el momento de escribir esta lección) no hay una función de modo en R (bueno... mode() como has descubierto se utiliza para afirmar el tipo de las variables).