4

一个真正的 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,但找不到任何令人满意的东西......我在这里错过了什么吗?使用的 RI 版本有什么问题吗?

4

1 回答 1

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

* 见本文第 2 节

于 2012-12-20T04:10:26.183 回答