Buenas. Les planteo un problema bastante sencillo que no consigo resolver
Tengo un data frame(VarEnv), con un factor de interés(COMARCA), y una variable de interés (MEAN). Entonces, para cada nivel del factor, quiero seleccionar los tres valores más altos de la variable. Entonces, lo hago de la siguiente manera
tapply(VarEnv$MEAN, VarEnv$COMARCA, FUN=???)
¿Qué función puedo utilizar?
Gracias
Rafa
Seleccionar los 3 valores más altos de una variable
de Rafael Molina Venegas - Número de respuestas: 3
En respuesta a Rafael Molina Venegas
Re: Seleccionar los 3 valores más altos de una variable
de Rafael Molina Venegas -
Ya encontré una solución. Muchas gracias
R
R
En respuesta a Rafael Molina Venegas
Re: Seleccionar los 3 valores más altos de una variable
de Usuario eliminado -
Y podrías compartirla?
Un saludo
Un saludo
En respuesta a Usuario eliminado
Re: Seleccionar los 3 valores más altos de una variable
de Rafael Molina Venegas -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