使用R中不同长度的向量的操作

时间:2014-09-15 16:04:15

标签: r vector

假设我在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如何进行这些计算?

1 个答案:

答案 0 :(得分:1)

来自amazingly-written documentation for R

2.2矢量算术

c(10.4, 5.6, 3.1, 6.4, 21.7) -> x
y <- c(x, 0, x)

向量可用于算术表达式,在这种情况下,操作是执行元素 按元素。在同一表达式中出现的载体不必全部具有相同的长度。如果 它们不是,表达式的值是一个与最长向量长度相同的向量 它出现在表达式中。表达式中较短的向量可以根据需要进行循环 (可能是分数)直到它们匹配最长矢量的长度。特别是一个常数 简单地重复一遍。所以使用上面的赋值命令

v <- 2*x + y + 1

生成一个长度为11的新向量v,通过逐个元素,2 * x加在一起构造 重复2.2次,重复一次,1次重复11次。