Foro de debate

Seleccionar los 3 valores más altos de una variable

Re: Seleccionar los 3 valores más altos de una variable

de Rafael Molina Venegas -
Número de respuestas: 0

Claro que si, no faltaba más:

TempMedia3masfrios = tapply(SubsetbyTempMean$MEAN, SubsetbyTempMean$COMARCA, sort )
for (i in 1:48){
sort.i = sort(TempMedia3masfrios[[i]], decreasing=F)
TempMedia3masfrios[[i]]= mean(sort.i[1:3])
}

Lo que he hecho es aplicar la función sort a todos los niveles del factor COMARCA (48 niveles), de tal forma que obtengo una lista donde cada elemento contiene los valores de la variable "MEAN" para cada uno de los 48 niveles. Entonces, aplico un loop ordenando cada elemento en orden creciente o decreciente (según interesen los valores mayores o menores). Una vez hecho esto, ya puedo hacer lo que quiera con los valores deseados (en el ejemplo, calcular la media de los tres valores más bajos)

Rafa