Em R, mean()
e median()
são funções padrão que fazem o que você'd espera. O mode()
diz-lhe o modo de armazenamento interno do objecto, e não o valor que mais ocorre no seu argumento. Mas há uma função padrão de biblioteca que implementa o modo estatístico para um vector (ou lista)?
Existe um pacote 'modesto' que fornece estimadores do modo de dados univariados unimodais (e por vezes multimodais) e valores dos modos de distribuição de probabilidades habituais.
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 mais informações ver esta página[2].
encontrou isto na lista de correio r, espero que isso's seja útil. É também o que eu estava a pensar de qualquer forma. Você'vai querer apresentar() os dados, ordenar e depois escolher o primeiro nome. It's hackish mas deve funcionar.
names(sort(-table(x)))[1]
R tem tantos pacotes adicionais que alguns deles podem muito bem fornecer o modo [estatístico] de uma lista/série/vector numéricos.
Contudo, a biblioteca padrão do próprio R não'não parece ter um método tão integrado! Uma maneira de contornar isto é usar algumas construções como as seguintes (e transformar isto numa função se usar frequentemente...):
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 uma lista de amostras maior, deve-se considerar a utilização de uma variável temporária para o valor max(tabSmpl) (eu não sei' não sei se R optimizaria isto automaticamente)
Referência: ver "Que tal median e mode?" nesta **KickStarting R lesson***
Isto parece confirmar que (pelo menos a partir da escrita desta lição) existe't uma função mode em R (bem... mode() como descobriu é usada para afirmar o tipo de variáveis).