Buenas:
Una tendencia natural cuando uno se inicia en un lenguaje de programación es hacer las cosas igual que en los lenguajes que uno conoce, esto habitualmente conlleva un subaprovechamiento de las posibilidades del lenguaje, en este caso R.
Una solución a tu problema podría consistir en usar una variable auxiliar para reordenar simultáneamente las ordenadas y las abscisas:
# Generación de datos aleatorios
y <- runif(10)
# Obtención del vector de posiciones ordenadas
indice <- sort(y, index.return=TRUE)$ix
# Reordenación de las variables
x <- 1:10
nx <- x[indice]
ny <- y[indice]
# Filtrar las que verifican la condición
xx <- nx[ny>.5]
yy <- ny[ny>.5]
# Hacer las gráficas
plot(x, y)
points(xx, yy, col='blue')
Una solución distinta, que creo que hace lo que quieres, mucho más eficiente usando R es:
y <- runif(10)
indice <- sort(y, index.return=TRUE)$ix
x <- 1:10
nx <- x[indice]
ny <- y[indice]
mycol <- rep('black', 10)
mycol[ny>.5] <- 'blue'
plot(nx, ny, col=mycol)
En esta solución se trabaja sobre el vector de colores.
Saludos.
Foro de debate
sobre la función which()
Este foro tiene un número limitado de mensajes para enviar en un cierto período de tiempo. El ajuste se ha establecido en 5 mensaje(s) en 1 día