较长的物体长度不是较短物体长度的倍数

时间:2012-12-20 04:01:11

标签: r ubuntu

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版本?

1 个答案:

答案 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部分