概述
为什么80%的码农都做不了架构师?>>>
R矩阵介绍:
is.matrix()可以判断是否是矩阵,as.matrix()可以将数据框转换成矩阵,但是矩阵中要求所有的数据格式都是一致。
1、可以使用matrix()创建新的矩阵,但是要输入一些参数可以通过
args(matrix) 知道需要什么参数
结果如下:function (data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
例: mm<-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")))
rownames(mm)可以查看行名
rownames(mm)=c("1","2")可以修改行名
dim(mm)得到矩阵的维数,nrow(),ncol()分别能得到矩阵的行列数
生成矩阵是按列排列的
方法二:array ( )函数构造多维数组
x=array(1:20,dim=c(4,5))
方法三:
2、 矩阵转置
t(mm)
若将函数t()作用于一个向量x,则R默认x为列向量,返回结果为一个行向量
若想得到一个列向量,可用t(t(x))
3、矩阵的运算
等维矩阵可以直接相加减即可相乘则使用%*%
标量与矩阵相乘直接使用*即可例如:2*A
矩阵的Hadamard积:即等维矩阵相同位置上的数字相乘,直接使用A*B即可
函数det(x)将计算方阵x的行列式的值
4、矩阵对角元素相关运算
例如要取一个方阵的对角元素diag(A)
方法一:对一个向量应用diag()函数将产生以这个向量为对角元素的对角矩阵,所以diag(diag(A))将产生A矩阵的对角矩阵
方法二:取对角矩阵A[row(A)!=col(A)]=0
对一个正整数z应用diag()函数将产生以z维单位矩阵
5、矩阵求逆
矩阵求逆可用函数solve(),应用solve(a, b)运算结果是解线性方程组ax = b,若b缺省,则系统默认为单位矩阵,因此可用其进行矩阵求逆
6、矩阵的特殊计算
行列求和和平均值rowSums(),colSums(), rowMeans()
行列求最大或者最小值使用apply:apply(A,1,max),其中1代表按行计算,2代表按列计算
其中apply可以有很多种应用方法例如apply(A,2,function(x,a)x*a,a=2)
7、三角矩阵
A[lower.tri(A)]=0其中lower.tri(A)将矩阵A中的下三角变成TRUE且diag即对角元素默认为FALSE,所以A[lower.tri(A)]=0就将上三角取出来了,如果加上diag=T,上对角矩阵不会取出来
A[upper.tri(A)]=0取出下三角矩阵
8、row(),col()函数
在R中定义了的这两个函数用于取矩阵元素的行或列下标矩阵,例如矩阵A={aij}m×n,
row()函数将返回一个与矩阵A有相同维数的矩阵,该矩阵的第i行第j列元素为i,函数col()类似
此函数也可以用于取三角矩阵x[row(x)>col(x)]=0
9、矩阵的分解下次再继续整理
转载于:https://my.oschina.net/piorcn/blog/314775
最后
以上就是聪慧火为你收集整理的R语言--矩阵相关函数的全部内容,希望文章能够帮你解决R语言--矩阵相关函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复