Chinaunix首页 | 论坛 | 博客
  • 博客访问: 296217
  • 博文数量: 42
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 847
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-28 14:14
个人简介

北冥有鱼,其名曰鲲,鲲之大,不知其几千里也;化而为鸟,其名为鹏,鹏之背,不知其几千里也,怒而飞,其翼若垂天之云。

文章分类

全部博文(42)

文章存档

2015年(6)

2014年(7)

2013年(29)

分类: LINUX

2015-06-19 16:17:59

R语言中存在一个重要的功能就是循环补齐

点击(此处)折叠或打开

  1. > a<-c(1,1,1)
  2. > b<-c(1,2,3,1,2,3)
  3. > a
  4. [1] 1 1 1
  5. > b
  6. [1] 1 2 3 1 2 3
  7. > a+b
  8. [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)

点击(此处)折叠或打开

  1. > m=rbind(c(1,4),c(2,5),c(3,6))
  2. > m
  3.      [,1] [,2]
  4. [1,] 1 4
  5. [2,] 2 5
  6. [3,] 3 6
  7. > m+c(1,2)
  8.      [,1] [,2]
  9. [1,] 2 6
  10. [2,] 4 6
  11. [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|
阅读(2929) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~