r - ggplot2 - podświetlanie wybranych punktów i dziwne zachowanie

Chcę zaznaczyć wybrane punkty i napotkać dziwne zachowanie. Najpierw kilka fałszywych danych:

a <- 1:50
b <- rnorm(50)
mydata <- data.frame(a=a,b=b)
ggplot(mydata,aes(x=a,y=b)) + geom_point()

To działa poprawnie. Teraz, aby podkreślić kilka punktów, dodam kolejnygeom_point warstwa:

ggplot(mydata[20:40,],aes(x=a,y=b)) + 
    geom_point() + 
    geom_point(aes(x=a[c(10,12,13)],y=b[c(10,12,13)]),colour="red")

Pamiętaj, że wyświetlam tylko ograniczony zakres danych ([20:40]). Teraz przychodzi dziwne zachowanie:

ggplot(mydata[10:40,],aes(x=a,y=b)) + 
    geom_point() + 
    geom_point(aes(x=a[c(10,12,13)],y=b[c(10,12,13)]),colour="red")

Zmieniając rozmiar wybranego zakresu, pojawia się błąd, z grubsza przetłumaczony z niemieckiego:Error...: Arguments implying different number of rows. Co dziwne, zmienia się to w zależności od wybranego zakresu.[23:40] będzie działać,[22:40] przyzwyczajenie.

Błąd w języku angielskim to:

Error in data.frame(x = c(19L, 21L, 22L), y = c(0.28198, -0.6215,  : 
  arguments imply differing number of rows: 3, 31

questionAnswers(3)

yourAnswerToTheQuestion