R环境的真正新手,我正在阅读“R简介”一书。
在一个例子中,作者建议“
表达式中较短的向量会根据需要进行循环 (可能是分数)直到它们匹配最长的长度 矢量。
在此之后,有这个例子......其中它表明一个向量将重复2.2次......
但是,当我在我的系统上复制相同的例子(ubuntu 64b,R - v2.4.11)时,我收到了此错误消息
x
[1] 2 5 8 6 11
> y
[1] 23 11
> v=2*x+y+1
Warning message:
In 2 * x + y :
longer object length is not a multiple of shorter object length
> v
[1] 28 22 40 24 46
尝试在内部搜索谷歌,stackoverflow,但无法找到任何令人满意的...我在这里遗漏了什么?有什么东西与我正在使用的R版本?
答案 0 :(得分:8)
当矢量被回收时,如果必须在完成之前将其“切断”,它将显示警告信息。 (如下所述,这不是错误消息。Error
= R无法完成您想要的功能,因此它退出。Warning
= R发现了一些奇怪的事情你是什么要求它做,但仍然可以做。*)
例如:
c(1,2) * c(1,2,3,4)
相当于:
c(1,2,1,2) * c(1,2,3,4)
并且不显示任何警告消息。但是:
c(1,2) * c(1,2,3,4,5)
相当于:
c(1,2,1,2,1) * c(1,2,3,4,5)
并显示警告消息,因为强制向量的最后一个元素不是原始向量中的最后一个元素。它仍然会完成工作并给你一个答案。警告只是一个警告。请参阅?warning
。
*请参阅this paper
的第2部分