R语言中存在一个重要的功能就是
循环补齐。
-
> a<-c(1,1,1)
-
> b<-c(1,2,3,1,2,3)
-
> a
-
[1] 1 1 1
-
> b
-
[1] 1 2 3 1 2 3
-
> a+b
-
[1] 2 3 4 2 3 4
上面这个代码中,a是三维的向量,而b是六维的向量,a和b的维数不一致。
在R语言中,这里仍然可以相加操作。
事实上a在这里可以看做为(1,1,1,1,1,1)【这里从三维变为六维】
所以c相当于(1,1,1,1,1,1)+(
1
,2
,3
,1
,2
,3)
所以c等于(2,3,4,2,3,4)
-
> m=rbind(c(1,4),c(2,5),c(3,6))
-
> m
-
[,1] [,2]
-
[1,] 1 4
-
[2,] 2 5
-
[3,] 3 6
-
> m+c(1,2)
-
[,1] [,2]
-
[1,] 2 6
-
[2,] 4 6
-
[3,] 4 8
矩阵也可以
循环补齐。
一种考虑这个问题的角度为:
m可以视为(1,2,3,4,5,6)
m+c(1,2)可以看做
c(1,2,3,4,5,6)+c(1,2,1,2,1,2)
所以m为(2,4,4,6,6,8)
另一种考虑这个问题的方法为:
|1,4| |1,2| |2,6|
|2,5| + |2,1| = |4,6|
|3,6| |1,2| |4,8|
阅读(2996) | 评论(0) | 转发(0) |