在r语言中,不同长度的向量也可以进行加法和乘法运算,乘法运算的规则与加法运算类似
1、将相同长度的向量相加
x- 1:4 y- 1:4 z- x y z
[1] 2 4 6 8
规则为x[1] y[1]、x[2] y[2]、x[3] y[3]、x[4] y[4]
x-1:4 y-1:4 z-x * yz [1] 14916
乘法也很相似
2、将不同长度的向量相加
x- 1:4 y- 1:3 z-x y警告消息: In x y :长的对象长度短的对象长度的整数倍z[1] 2 4 6 5注意r返回警告消息而不是错误消息,因此实际上此操作
已执行。
这些规则是x[1] y[1]、x[2] y[2]、x[3] y[3]、x[4] y[1]。 (因为y[3]结束后,又要进入循环。 )
乘法的规则相似
x- 1:4 y- 1:3 z- x*y警告消息: In x * y :长对象长度短对象长度的整数倍z[1] 1 4 9 4
另外,得到的矢量长度是最长的矢量长度
x-1:4 y-1:3 z-2:3 w-XYZ警告信息: In x y :长对象长度不是短对象长度整数倍w[1] 4 7 8 8 v-x*y*z警告信息: In x * y :长对象长度
但是这里出了问题
x-1:4 y-1:3 z-2:3 XYZ [1] 478警告消息: In x y :长对象长度短对象长度的整数倍x z y[1] 4 7 8 8警告信息: In x z y :长对象长度短对象长度整数倍z x y[1] 4 7 8 8警告信息: In z x y :长对象长度短对象长度整数倍span style='color:#ff0000 z y x[1] 4 7 8 7/span警告消息: 1: In z y :长度的对象长度不是短对象长度的整数倍2: In z y x :长度的对象长度不是短对象长度的整数倍z*x*y[1] 2 12 18 12警告消息: In z * x * y :长对象长度不是短对象长度的整数倍z*y*x[1] 2 12 18 8警告消息: 1: In z * y :长对象长度短对象长度
不知道你注意到没有,我们的方法是不是错了?
首先,加法和乘法在没有括号等其他优先顺序的情况下从左到右依次计算
看看吧
x-c (1,2,3,4 ) y-c ) 1,2,3 ) z-c ) 2,3 ) xy[1]2)4)5xyz[1]4)7) 8
z y[1] 3 5 5 z y x[1] 4 7 8 7
所以,将不同长度的向量相加也是重要的