La función which() me resulta muy útil porque permite seleccionar observaciones que cumplen una determinada condición y hacer con ellas toda serie de manipulaciones.
Sin embargo me he encontrado con un pequeño límite y me gustaría lanzar pregunta sobre el tema.
Supongamos que queremos graficar una variable y resaltar de azul aquellos puntos (observaciones) que cumplan una determinada condición. Esto se haría de la siguiente manera:
>plot(variable)
>points(which(condición),variable[which(condición)], col='blue')
Hasta aquí ningún problema. Ahora bien, supongamos que queremos graficar la misma variable pero con sus valores ordenados de menor a mayor. Esto lo estoy haciendo de la siguiente manera:
Sin embargo me he encontrado con un pequeño límite y me gustaría lanzar pregunta sobre el tema.
Supongamos que queremos graficar una variable y resaltar de azul aquellos puntos (observaciones) que cumplan una determinada condición. Esto se haría de la siguiente manera:
>plot(variable)
>points(which(condición),variable[which(condición)], col='blue')
Hasta aquí ningún problema. Ahora bien, supongamos que queremos graficar la misma variable pero con sus valores ordenados de menor a mayor. Esto lo estoy haciendo de la siguiente manera:
>plot(sort(variable))
Ahora me gustaría resaltar en azul aquellos puntos de la gráfica que cumplan la condición. Sin embargo, si hago
>points(which(condición), (sort(variable))[which(condición)], col='blue')
las abcisas no son precisamente las que yo busco, pues no van emparejadas con la ordenada que les correspondería, ya que éstas últimas han sido reordenadas de menor a mayor según los valores de mi variable.
Para solucionar este problema he probado con las funciones sort() y order() pero no acabo de dar con la forma correcta. Lo único que me ha funcionado es ordenar todo el dataframe según mi variable (hay funciones desarrolladas por otros como sort.data.frame()) y luego trabajar como si no hiciera falta ordenar.
Supongo que habrá una forma más ágil.
Muchas gracias de antemano
Para solucionar este problema he probado con las funciones sort() y order() pero no acabo de dar con la forma correcta. Lo único que me ha funcionado es ordenar todo el dataframe según mi variable (hay funciones desarrolladas por otros como sort.data.frame()) y luego trabajar como si no hiciera falta ordenar.
Supongo que habrá una forma más ágil.
Muchas gracias de antemano