R语言如何创建矩阵
在R中,可以使用matrix函数并以向量形式输入矩阵中的全部元素,使用ncol和nrow可设置矩阵的行和列数,从而创建一个矩阵。例如:
data<-c(1:10) a<-matrix(data,ncol=2,nrow=5) a [,1] [,2] [1,] 1 6 [2,] 2 7 [3,] 3 8 [4,] 4 9 [5,] 5 10
在上面的示例中,data是一个向量,是元素为1~10的实数。使用matrix函数,把向量data转化为2列(ncol=2)5行(nrow=5)的矩阵。注意,向量1~10的填充方式为以列为单位填充。如果想以行为单位填充,则可以把matrix函数的byrow参数置为T。例如:
a<-matrix(data,ncol=2,nrow=5,byrow = T) a [,1] [,2] [1,] 1 2 [2,] 3 4 [3,] 5 6 [4,] 7 8 [5,] 9 10
对于matrix函数的行数参数nrow和列数参数ncol,可以通过dim函数来获取并编辑。例如:
data<-c(1:10) a<-matrix(data) dim(a)<-c(2,5) a [,1] [,2] [,3] [,4] [,5] [1,] 1 3 5 7 9 [2,] 2 4 6 8 10
其中,dim(<矩阵>)是由矩阵的行数和列数这两个元素组成的向量,我们称其为维数向量。
在创建矩阵时,也可以使用dimnames参数设置行和列的名称。例如:
a<-matrix(data,ncol=2,nrow=5,dimnames=list(c("r1","r2","r3","r4","r5"),c("c1","c2"))) a c1 c2 r1 1 6 r2 2 7 r3 3 8 r4 4 9 r5 5 10
dimnames参数以list列表形式进行输入,列表数据的具体说明会在下面章节中讲解。在上面的示例中,list(c("r1","r2","r3","r4","r5"),c("c1","c2"))表示行名称为r1~r5,列名称为c1~c2。设置好行和列的名称后,也可以直接通过dimnames(<矩阵>)来读取并编辑行列名称。
前面建立矩阵的过程中实质是利用了向量内的元素,即通过设置列数ncol和行数nrow来转化为矩阵。同样,也可以使用as.vector(<矩阵>)将矩阵反过来转化为向量。例如:
data<-c(1:10) a<-matrix(data,ncol=2,nrow=5) b<-as.vector(a) b [1] 1 2 3 4 5 6 7 8 9 10
其中,col是列的简称,row是行的简称。