Podczas wykonywania logiczną porównanie dwóch wektorów w R, „oczekiwanie” jest to, że oba wektory są tej samej długości, dzięki czemu można porównać każdy R odpowiedniego elementu z kolei.
R ma bardzo lubianą (lub znienawidzoną) funkcję o nazwie recycling, w której w wielu przypadkach, jeśli spróbujesz zrobić coś, w czym R normalnie oczekiwałoby, że obiekty będą tej samej długości, będzie automatycznie przedłużać lub zawracać obiekt zmuszający oba obiekty do tej samej długości.
Jeśli dłuższy obiekt jest wielokrotnością krótszego, oznacza to powtórzenie krótszego obiektu kilka razy. Często programiści R skorzystają z tego, aby robić rzeczy zwięźlej i przy mniejszym pisaniu.
Ale jeśli nie są wielokrotnościami, R będzie się martwić, że popełniłeś błąd i być może nie chciałeś przeprowadzić takiego porównania, stąd ostrzeżenie.
poznaj się z następującego kodu:
> 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