|||
R语言中matrix函数的几个有趣范例
熊荣川
六盘水师范学院生物信息学实验室
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 |
给向量赋值1到20 |
|
> a=matrix(x, 5,6) |
将向量中的数据依次赋值给矩阵a |
|
警告信息: In matrix(x, 5, 6) : 数据长度[20]不是矩阵列数[6]的整倍数 |
|
> |
x=1:31 |
给向量赋值1到31 |
> |
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 |
查看结果 |
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 09:58
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社