我有两个变量,x(取5个值)和y(取11个值).当我想要运行参数时,
> v <- 2*x +y +1
Run Code Online (Sandbox Code Playgroud)
R响应:
Error at 2* x+y: Longer object length is not a multiple of shorter object length.
Run Code Online (Sandbox Code Playgroud)
我试过:1*x给我5个x值,但y有11个值.那么R说它不能添加11到5个值? - 这提出了一个普遍的问题:回收在什么情况下起作用?
Ari*_*man 13
回收工作在您的示例中:
> x <- seq(5)
> y <- seq(11)
> x+y
[1] 2 4 6 8 10 7 9 11 13 15 12
Warning message:
In x + y : longer object length is not a multiple of shorter object length
> v <- 2*x +y +1
Warning message:
In 2 * x + y :
longer object length is not a multiple of shorter object length
> v
[1] 4 7 10 13 16 9 12 15 18 21 14
Run Code Online (Sandbox Code Playgroud)
您报告的"错误"实际上是一个"警告",这意味着R通知您它正在回收,但无论如何都要回收.您可能已options(warn=2)打开,将警告转换为错误消息.
一般来说,避免依赖回收.如果你养成忽略警告的习惯,有一天它会咬你,你的代码将以一些非常难以诊断的方式失败.
| 归档时间: |
|
| 查看次数: |
2456 次 |
| 最近记录: |