他强任他强,清风拂山岗
——侃爷
今天主要介绍的是R中的另一种重要的数据结构--矩阵。
矩阵是一个每个元素都是相同数据类型(数值、字符、逻辑)的二维数组。
1.创建矩阵:
使用matrix()函数:data1-matrix(data,nrow=value1,ncol=value2,byrow=TorF),这是创建一个矩阵常见的模式,其中byrow的默认值是F,byrow=T表示的是矩阵按行填充,而byrow=F表示的是矩阵按列填充:
2.矩阵下标:
对于刚刚创建的矩阵,我们可以取出某行某列的元素,也可以整行数据,在取出矩阵的整列数据的同时,也可以保持列矩阵的原样:
对比data1[,2]和data1[,2,drop=F]结果,可以看出同样是取出矩阵data1的第二列数据,加了参数drop=F后可以保持矩阵的原样。
3.矩阵运算:
在矩阵进行运算时,若两个矩阵的形状一致时,则会对应位置的元素进行算,若形状不相同,则短向量的数据会被循环使用,一般这种方法不推荐使用,这里也就不介绍了:
对于两个矩阵相乘,若A是一个m*n的矩阵,B是一个n*k的矩阵,则AB可用符号"%*%":
4.矩阵合并:
矩阵合并主要有按行合并(rbind),以及按列合并(cbind):
5.矩阵的主要运算函数:
矩阵转置:t(mymatrix);
矩阵行列式:det(mymatrix);
矩阵的逆:solve(mymatrix);
矩阵的特征值和特征向量:eigen(mymatrix):
取对角运算:diag(mymatrix);
上三角:upper.tri(mymatrix);
下三角:lower.tri(mymatrix):
其中,在取上三角后,同时也可以通过设置参数diag的值来确定是否包含对角线,取下三角同上三角,这里也就不说明了。
我们下次再见,如果还有下次的话!!!