【发布时间】:2014-09-15 16:04:14
【问题描述】:
假设我在 R 中有两个不同长度的向量:
x=1:10
y=1:20
即使它们的长度不同,R 也允许我对它们执行操作。
> y/x
[1] 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
[7] 1.000000 1.000000 1.000000 1.000000 11.000000 6.000000
[13] 4.333333 3.500000 3.000000 2.666667 2.428571 2.250000
[19] 2.111111 2.000000
> x + y
[1] 2 4 6 8 10 12 14 16 18 20 12 14 16 18 20 22 24 26 28 30
为什么我可以这样做?这个输出是什么意思? R 是如何进行这些计算的?
【问题讨论】:
-
您的向量
x比y短,因此它的值被回收以匹配y的长度;在这种情况下,您的代码相当于y/rep(x,2)。 -
这意味着
y被x分割:-) -
请阅读amazing R documentation,第 2.2 节。