R数据结构之矩阵创建
Posted 吼吼大王
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R数据结构之矩阵创建相关的知识,希望对你有一定的参考价值。
矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通过函数matrix( )创建矩阵。一般使用格式为:
Mymatrix <- matrix(vector,nrow=number_of_rows,ncol=number_of_columns,
byrow=logical_value, dimnames=list(
char_vector_rowname,char_vector_colnames))
其中vector包含了矩阵的元素,nrow和ncol用以指定行和列的维数,dimnames包含了可选的、 以字符型向量表示的行名和列名。选项byrow则表明矩阵应当按行填充(byrow=TRUE)还是按列填充(byrow=FALSE),默认情况下按列填充。简单示例如下:
> y <- matrix(1:20,nrow=5,ncol=4) #创建一个$5\times 4$的矩阵
> y
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
> cells <- c(1,26,24,68)
> rnames <- c(‘R1‘,‘R2‘)
> cnames <- c(‘C1‘,‘C1‘)
> mymatrix <- matrix(cells,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames ,cnames ))
> mymatrix )#按行填充的$2\times 2$ 的矩阵
C1 C1
R1 1 26
R2 24 68
> mymatrix <- matrix(cells,nrow=2,ncol=2,byrow=FALSE,dimnames=list(rnames ,cnames ))
> mymatrix #按列填充的$2\times 2$ 的矩阵
C1 C1
R1 1 24
R2 26 68
我们可以使用下标和方括号来选择矩阵中的行、列或元素。$\text{X }\!\![\!\!\text{ i, }\!\!]\!\!\text{ }$指矩阵X中的第$i$行,$\text{X }\!\![\!\!\text{ ,j }\!\!]\!\!\text{ }$ 指第$j$列,$\text{X }\!\![\!\!\text{ i,j }\!\!]\!\!\text{ }$ 指第$i$行第$j$个元素。选择多行或多列时,下标$i$和$j$可为数值型向量,如:
> y[2,] #第二行的元素
[1] 2 7 12 17
> y[,2] #第二列的元素
[1] 6 7 8 9 10
> y[1,4] #第一行第四列的元素
[1] 16
> y[1,c(3,4)] #第一行第四、第五列的元素
[1] 11 16
Mymatrix <- matrix(vector,nrow=number_of_rows,ncol=number_of_columns,
byrow=logical_value, dimnames=list(
char_vector_rowname,char_vector_colnames))
其中vector包含了矩阵的元素,nrow和ncol用以指定行和列的维数,dimnames包含了可选的、 以字符型向量表示的行名和列名。选项byrow则表明矩阵应当按行填充(byrow=TRUE)还是按列填充(byrow=FALSE),默认情况下按列填充。简单示例如下:
> y <- matrix(1:20,nrow=5,ncol=4) #创建一个$5\times 4$的矩阵
> y
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
> cells <- c(1,26,24,68)
> rnames <- c(‘R1‘,‘R2‘)
> cnames <- c(‘C1‘,‘C1‘)
> mymatrix <- matrix(cells,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames ,cnames ))
> mymatrix )#按行填充的$2\times 2$ 的矩阵
C1 C1
R1 1 26
R2 24 68
> mymatrix <- matrix(cells,nrow=2,ncol=2,byrow=FALSE,dimnames=list(rnames ,cnames ))
> mymatrix #按列填充的$2\times 2$ 的矩阵
C1 C1
R1 1 24
R2 26 68
我们可以使用下标和方括号来选择矩阵中的行、列或元素。$\text{X }\!\![\!\!\text{ i, }\!\!]\!\!\text{ }$指矩阵X中的第$i$行,$\text{X }\!\![\!\!\text{ ,j }\!\!]\!\!\text{ }$ 指第$j$列,$\text{X }\!\![\!\!\text{ i,j }\!\!]\!\!\text{ }$ 指第$i$行第$j$个元素。选择多行或多列时,下标$i$和$j$可为数值型向量,如:
> y[2,] #第二行的元素
[1] 2 7 12 17
> y[,2] #第二列的元素
[1] 6 7 8 9 10
> y[1,4] #第一行第四列的元素
[1] 16
> y[1,c(3,4)] #第一行第四、第五列的元素
[1] 11 16
以上是关于R数据结构之矩阵创建的主要内容,如果未能解决你的问题,请参考以下文章
R语言创建使用矩阵(按行按列填充,矩阵命名,矩阵下标使用,数据框转换为矩阵)