Khi bạn thực hiện một sự so sánh boolean giữa hai vectơ trong R, những "kỳ vọng" là cả hai vectơ là chiều dài tương tự, do đó R có thể so sánh từng phần tử tương ứng lần lượt.
R có nhiều tính năng được gọi là recycling, theo đó trong nhiều trường hợp nếu bạn cố gắng làm điều gì đó mà R thường mong đợi các đối tượng có cùng chiều dài, nó sẽ tự động mở rộng hoặc tái chế, ngắn hơn đối tượng để buộc cả hai đối tượng có cùng độ dài.
Nếu đối tượng dài hơn là bội số của ngắn hơn, số tiền này chỉ đơn giản lặp lại đối tượng ngắn hơn nhiều lần. Thông thường, các lập trình viên R sẽ tận dụng điều này để làm những việc nhỏ gọn hơn và ít bị đánh máy hơn.
Nhưng nếu chúng không phải là bội số, R sẽ lo lắng rằng bạn có thể đã phạm sai lầm và có lẽ không có nghĩa là thực hiện so sánh đó, do đó cảnh báo.
Khám phá chính mình bằng mã sau:
> 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