Wenn Sie eine Boolesche Vergleich zwischen zwei Vektoren in R, die „Erwartung“ durchzuführen ist, dass beide Vektoren die gleiche Länge haben, so daß R jedes entsprechende Element wiederum vergleichen.
R hat ein viel geliebtes (oder gehasstes) Feature namens recycling, wobei in vielen Fällen, wenn Sie versuchen, etwas zu tun, wo R normalerweise erwarten würde, dass Objekte die gleiche Länge haben, es automatisch verlängert oder recycelt Objekt, um beide Objekte auf die gleiche Länge zu zwingen.
Wenn das längere Objekt ein Vielfaches des kürzeren Objekts ist, wird das kürzere Objekt einfach mehrmals wiederholt. Oft nutzen R-Programmierer dies, um Dinge kompakter und mit weniger Tipparbeit zu erledigen.
Wenn sie jedoch keine Vielfachen sind, wird R befürchten, dass Sie einen Fehler gemacht haben, und vielleicht nicht diesen Vergleich durchführen wollen, daher die Warnung.
erkunden, sich mit dem folgenden Code:
> x <- 1:3
> y <- c(1,2,4)
> x == y
[1] TRUE TRUE FALSE
> y1 <- c(y,y)
> x == y1
[1] TRUE TRUE FALSE TRUE TRUE FALSE
> y2 <- c(y,2)
> x == y2
[1] TRUE TRUE FALSE FALSE
Warning message:
In x == y2 :
longer object length is not a multiple of shorter object length