R语言--矩阵相关函数

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、矩阵的分解下次再继续整理

时间: 2024-10-05 05:50:09

R语言--矩阵相关函数的相关文章

R语言矩阵维度“消失”的问题

矩阵(matrix)是R语言中很基础的一种数据结构,也是R语言使用者经常使用的一种数据结构.矩阵的维度一般为二维(m*n). R语言中矩阵的操作是非常简单易懂的,但是在对R语言做矩阵操作时,有个地方需要特别注意.下面我们通过一个例子说明. 首先,我们创建一个用于测试的矩阵. test1 <- matrix(data = c(1:6), nrow = 3, ncol = 2, dimnames = list(c("row1", "row2", "row

R语言矩阵栅格显示矩阵颜色显示

效果如下:

R语言学习中的小bug:R中矩阵相乘错误于A %*% B: 需要数值/复数矩阵/矢量参数

遇到了小bug: R中矩阵相乘错误于A %*% B: 需要数值/复数矩阵/矢量参数 看到网上别人的做法,发现了用class(A)和class(B)之后才发现,是因为读入的时候数据的类型不对,A.B的类型并不是matrix,才导致了这个问题. 用as.matrix来变型一下,就OK了. R语言学习中的小bug:R中矩阵相乘错误于A %*% B: 需要数值/复数矩阵/矢量参数,布布扣,bubuko.com

使用R语言为矩阵(表格)的行列命名

转自:http://www.dataguru.cn/article-2217-1.html R语言中经常进行矩阵(表格)数据的处理,在纷繁复杂的数据中,为其行列定义一个名字变得尤为重要.在处理巨量数据时,批量命名将是一个不错的操作方法,下面我们通过一些具体的例子演示怎样在R语言中为矩阵的行列进行批量的命名. > x <- matrix(1:12,nrow=3,byrow=T) 初始化一个矩阵,先行后列的顺序进行填充 > x 查看矩阵x   [,1] [,2] [,3] [,4] [1,]

《R语言入门》矩阵元素定义及筛选

<R语言入门>目录: 如何在Windows下安装R语言编程环境 矩阵元素定义及筛选 和向量一样,矩阵也可以做筛选.但是需要注意一下语法上的不同.下面是一个简单的例子: 以下代码用户定义一个矩阵元素变量"si",ncol=3(三列),byrow = TRUE(数据按行输入) 使用"<-"小于号减号作为操作符 si <- matrix(c(1, 1, 1, 2, 3, 1, 3, 4, 1, 5, 1, 3), ncol = 3, byrow =

R 语言数据结构 --2 矩阵和数据框①矩阵-matrix

矩阵-matrix-2018年6月9日 今天很可惜,没有过多地学习R语言(主要因为去听了党课,学习了党重要讲话,所以没有看书),所以今天就总结一个矩阵吧.不过多的学习了. 首先稍微复习一下昨天的因子,首先要记得的就是mode()看每个元素,class()看整体是什么,另外如果你把TRUE abc 1都传给一个向量,那向量会把它进行类型转换.安全性:字符串>数字>逻辑值.会尽量向安全性高的转换.这个是隐式类型转换.当然也可以用as家族进行类型转化,例如将数字转换成字符串:as.character

R与数据分析学习总结之一:R语言基本操作

最近开始学习R语言,把学习笔记和小伙伴们分享一下吧,欢迎一起交流 R 起源: R是S语言的一种实现.S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索.统计分析.作图的解释型语言.最初S语言的实现版本主要是S-PLUS.S-PLUS是一个商业 软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善.后来Auckland大学的Robert Gentleman 和 Ross Ihaka 及其他志愿人员开发了一个R系统.R的使用与S-PLUS有很多类似之处,两个软件有一定的兼容性.

R语言快速上手入门

R语言快速上手入门 课程学习网址:http://www.xuetuwuyou.com/course/196 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介 本教程深入浅出地讲解如何使用R语言玩转数据.课程中涵盖R语言编程的方方面面,内容涉及R对象的类型.R的记号体系和环境系统.自定义函数.if else语句.for循环.S3类R的包系统以及调试工具等.本课程还通过示例演示如何进行向量化编程,从而对代码进行提速并尽可能地发挥R的潜能.本课程适合立志成为数据科学家的

R语言入门

向量是 R 语言中最基本的数据类型,在 R 中没有单独的标量(例如 1 本质上是 c(1)) 注意 R 语言的下标是从 1 开始的 负数下标表示不选这个这些下标,例如: > a <- c(2,5,8)> a[-2][1] 2 8 循环补齐 向量有个比较有趣的性质,当两个向量进行操作时,如果长度不等,长度比较短的一个会复制自己直到自己和长的一样长. > a <- c(3,4)> b <- c(1,2,5,6)> a+b[1]  4  6  8 10 新建一个矩