當執行中的R 2個矢量之間的布爾比較中,「期望」是兩個矢量的長度相同,使R能夠依次比較每個對應元件。 R有一個被稱爲recycling的非常喜歡(或討厭)的功能,因此在很多情況下,如果你嘗試做一些R通常期望物體長度相同的東西,它會自動擴展或回收較短的對象強制兩個對象具有相同的長度。
如果較長的對象是較短的倍數,則相當於簡單地重複較短的對象多次。通常情況下,R程序員會利用這一點來更緊湊地完成任務,減少打字次數。
但是,如果它們不是倍數,R會擔心你可能犯了一個錯誤,也許並不意味着要進行這種比較,因此是警告。
用下面的代碼瀏覽自己:
> 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