沉闷科学的掘墓人分享 http://blog.sciencenet.cn/u/Bearjazz

博文

R语言中matrix函数的几个有趣范例

已有 16056 次阅读 2012-3-24 17:42 |个人分类:我的研究|系统分类:科研笔记| R语言, 范例, matrix函数

R语言中matrix函数的几个有趣范例

 

 

熊荣川

六盘水师范学院生物信息学实验室

xiongrongchuan@126.com

http://blog.sciencenet.cn/u/Bearjazz

 

范例一

a=matrix(1:30, 5,6)

建立矩阵a,三个参数分别表示数据源,5行、6

a

查看a

 

     [,1]  [,2]  [,3]  [,4]  [,5]   [,6]

[1,]    1    6   11   16   21   26

[2,]    2    7   12   17   22   27

[3,]    3    8   13   18   23   28

[4,]    4    9   14   19   24   29

[5,]    5   10   15   20   25   30

 

查看结果表明,矩阵的“填充”顺序为先列后行,从上到下

 

范例二

x=1:20

给向量赋值120

 

> a=matrix(x,  5,6)

将向量中的数据依次赋值给矩阵a

 

警告信息:

In matrix(x, 5, 6) : 数据长度[20]不是矩阵列数[6]的整倍数

出错,说明向量数据量要和矩阵数据量一致

x=1:31

给向量赋值131

a=matrix(x,  5,6)

将向量中的数据依次赋值给矩阵a

 

警告信息:

In matrix(x, 5, 6) : 数据长度[31]不是矩阵行数[5]的整倍

出错,说明向量数据量要和矩阵数据量一致

 

范例三

b=matrix(,5,6)

建立空矩阵b

b

查看矩阵b

 

     [,1] [,2] [,3] [,4] [,5] [,6]

[1,]   NA   NA   NA   NA   NA   NA

[2,]   NA   NA   NA   NA   NA   NA

[3,]   NA   NA   NA   NA   NA   NA

[4,]   NA   NA   NA   NA   NA   NA

[5,]   NA   NA   NA   NA   NA   NA

 

查看结果

范例四

a=matrix(1:30, 5,6)

建立矩阵a,三个参数分别表示数据源,5行、6

a

查看a

 

     [,1]  [,2]  [,3]  [,4]  [,5]   [,6]

[1,]    1    6   11   16   21   26

[2,]    2    7   12   17   22   27

[3,]    3    8   13   18   23   28

[4,]    4    9   14   19   24   29

[5,]    5   10   15   20   25   30

 

查看结果表明,矩阵的“填充”顺序为先列后行,从上到下

>

b=matrix(,6,5)

建立6行、5列的空矩阵b

b

查看矩阵b

 

     [,1] [,2] [,3] [,4] [,5]

[1,]   NA   NA   NA   NA   NA

[2,]   NA   NA   NA   NA   NA

[3,]   NA   NA   NA   NA   NA

[4,]   NA   NA   NA   NA   NA

[5,]   NA   NA   NA   NA   NA

[6,]   NA   NA   NA   NA   NA

 

查看结果

b=matrix(a,6,5)

将矩阵a的值依次赋值给b

b

查看b

 

     [,1] [,2] [,3] [,4] [,5]

[1,]    1    7   13   19   25

[2,]    2    8   14   20   26

[3,]    3    9   15   21   27

[4,]    4   10   16   22   28

[5,]    5   11   17   23   29

[6,]    6   12   18   24   30

查看结果。说明matrix在取值时的顺序为先列后行,从上到下

 

范例五

mdat <- matrix(c(1,2,3, 11,12,13), nrow = 2, ncol=3, byrow=TRUE,dimnames = list(c("row1", "row2"),c("C.1", "C.2", "C.3")))

先行后列的顺序填充矩阵,并命名各行各列

mdat

查看矩阵

 

     C.1 C.2 C.3

row1   1   2   3

row2  11  12  13

查看结果

 



https://blog.sciencenet.cn/blog-508298-551306.html

上一篇:用R语言中t()实现行列转换(翻译)
下一篇:如何在R语言中为矩阵加入新的行列数据
收藏 IP: 210.75.236.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-15 04:40

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部