请参阅下面的代码:
x <- c(23,43,54,75,76,6,87,5,43,234,2)
y <- c(1,2,23,43,54,75,76,6,87,1)
z <- x + y
该片段向我发出警告信息。当我尝试将x和y添加为:
时#Warning message:
#In x + y : longer object length is not a multiple of shorter object length
但是当我添加:
x <- c(3,4,5,8)
y <- c(1,3)
z <- x + y
z
没有抛出任何错误消息,R完全回收它。为什么呢?
答案 0 :(得分:1)
首先,重要的是要注意这是警告,而不是错误。因此,在任何一种情况下,都不会抛出错误并添加向量。
关于第二个示例中没有警告,警告消息非常清楚地说明了原因:
对象长度不是较短对象长度的倍数
在您的第二个示例中,x
的长度是y
长度的两倍,因此 是一个倍数(与您的第一个示例相反,后者产生了警告)。因此,当向量y
被回收时,第二个示例中没有给出警告。