R语言常用的矩阵操作
R语言是一门非常方便的数据分析语言,它内置了许多处理矩阵的方法。下面列出一些常用的矩阵操作方法示例。
矩阵的生成
> mat <- matrix(:, ncol = , nrow = , byrow=TRUE, dimnames=list(c(paste("x", :, sep = ".")), c(paste("y", :, sep = "."))))
> mat
y. y. y. y.
x.
x.
x.
x. 16
# 矩阵的行列名还可以使用rownames或者colnames进行修改
> rownames(mat) <- paste("row", :, sep=".")
> colnames(mat) <- paste("col", :, sep=".")
> mat
col. col. col. col.
row.
row.
row.
row.
矩阵的维度
# 表示这是一个4行4列的矩阵
> dim(mat)
[]
矩阵的加减
> mat. <- matrix(:, nrow = )
> mat.
[,] [,] [,] [,]
[,]
[,]
[,]
[,]
> mat.plus <- mat + mat.
> mat.plus
col. col. col. col.
row.
row.
row.
row.
> mat.minus <- mat - mat.
> mat.minus
col. col. col. col.
row. - - - -
row. - - - -
row. - - - -
row. - - - -
矩阵的转置
> t(mat)
row. row. row. row.
col.
col.
col.
col.
矩阵相乘
# 若A矩阵的维度为m*n,那么B矩阵的维度应为n*p
# 生成的结果矩阵的维度为m*p
> mat. <- matrix(:, nrow = )
> mat.
[,] [,]
[,]
[,]
[,]
[,]
> mat.mcl <- mat %*% mat.
> mat.mcl
[,] [,]
row.
row.
row.
row.
返回矩阵的对角
> diag(mat)
[]
生成上三角或下三角矩阵
# 生成上三角矩阵,注意这里的diag参数如果为TRUE,
# 表示把矩阵对角也包括进来。设置为FALSE就是不包括。
> mat[!upper.tri(mat, diag = TRUE)] <-
> mat
col. col. col. col.
row.
row.
row.
row.
# 生成下三角矩阵
> mat[!lower.tri(mat, diag = TRUE)] <-
> mat
col. col. col. col.
row.
row.
row.
row.
求解逆矩阵
> solve(mat)
row. row. row. row.
col. 1.00000000 6.832142e-17 0.00000000 0.0000
col. -0.83333333 1.666667e-01 0.00000000 0.0000
col. -0.06060606 -1.515152e-01 0.09090909 0.0000
col. -0.02651515 -3.787879e-03 -0.08522727 0.0625
求行列式的值
> det(mat)
[] 4.733165e-30
矩阵的特征值和特征向量
> mat.e <- eigen(mat)
> mat.e
eigen() decomposition
$values
[] 3.620937e+01 -2.209373e+00 -3.188632e-15 -1.348401e-16 $vectors
[,] [,] [,] [,]
[,] -0.1511543 0.7270500 0.5037002 -0.06456091
[,] -0.3492373 0.2832088 -0.8319577 -0.31932112
[,] -0.5473203 -0.1606324 0.1528148 0.83232496
[,] -0.7454033 -0.6044736 0.1754427 -0.44844294
# 可以使用mat.e$values和mat.e$vectors取出结果
奇异值分解
> svd(mat)
$d
[] 3.862266e+01 2.071323e+00 7.609772e-16 3.860638e-16 $u
[,] [,] [,] [,]
[,] -0.1347221 -0.82574206 0.3812474 -0.39325613
[,] -0.3407577 -0.42881720 -0.2152141 0.80850658
[,] -0.5467933 -0.03189234 -0.7133141 -0.43724476
[,] -0.7528288 0.36503251 0.5472808 0.02199431 $v
[,] [,] [,] [,]
[,] -0.4284124 0.7186535 0.2825595 -0.4692122
[,] -0.4743725 0.2738078 -0.7264762 0.4150089
[,] -0.5203326 -0.1710379 0.6052738 0.5776189
[,] -0.5662928 -0.6158835 -0.1613571 -0.5234156
QR分解
> qr(mat)
$qr
col. col. col. col.
row. -16.6132477 -18.2986497 -1.998405e+01 -2.166945e+01
row. 0.3009646 -1.0767638 -2.153528e+00 -3.230291e+00
row. 0.5417363 -0.3456506 1.350645e-15 3.139336e-15
row. 0.7825080 -0.9120325 1.643990e-01 7.300782e-17 $rank
[] $qraux
[] 1.060193e+00 1.220731e+00 1.986394e+00 7.300782e-17 $pivot
[] attr(,"class")
[] "qr"
> qr.Q(qr(mat))
[,] [,] [,] [,]
[,] -0.06019293 -0.83449195 -0.3906679 -0.3838992
[,] -0.30096463 -0.45762462 0.2347489 0.8030523
[,] -0.54173634 -0.08075729 0.7025058 -0.4544068
[,] -0.78250805 0.29611005 -0.5465868 0.0352538
> qr.R(qr(mat))
col. col. col. col.
row. -16.61325 -18.298650 -1.998405e+01 -2.166945e+01
row. 0.00000 -1.076764 -2.153528e+00 -3.230291e+00
row. 0.00000 0.000000 1.350645e-15 3.139336e-15
row. 0.00000 0.000000 0.000000e+00 7.300782e-17
R语言常用的矩阵操作的更多相关文章
- 【R】R语言常用函数
R语言常用函数 基本 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量character:字符型向量 list:列表 data.frame:数据框c:连接为向量或 ...
- R语言文件相关的操作
1. 文件系统介绍 R语言对文件系统的操作,包括文件操作和目录操作,函数API都定义在base包中. 2. 目录操作 2.1 查看目录 查看当前目录下的子目录. # 启动R程序 ~ R # 当前的目录 ...
- R语言编程艺术# 矩阵(matrix)和数组(array)
矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一 ...
- R语言常用数据管理
1.变量的重命名 (1)交互式编辑器修改变量名 若要修改数据集x中的变量名,键入fix(x)即可打开交互式编辑器的界面.若数据集为矩阵或数据框,单击交互式编辑器界面中对应要修改的变量名,可手动输入新的 ...
- R语言进行文件夹操作示例(转)
rm(list=ls())path = 'J:/lab/EX29 --在R语言中进行文件(夹)操作'setwd(path)cat("file A\n", file="A& ...
- R语言常用函数:交集intersect、并集union、找不同setdiff、判断相同setequal
在R语言进行数据分析时,经常需要找不同组间的相同和不同,那你应该掌握如下几个函数,让你事半功倍. 交集intersect两个向量的交集,集合可以是数字.字符串等 # 两个数值向量取交集intersec ...
- R语言常用操作
1 取整运算 在编程实现的时候有时会碰到对数值取整的需求,而取整的方式却多种多样,依赖于具体问题,不过在R中已经配备了种类齐全的相关函数,主要包括以下五种: floor():向下取整: ceiling ...
- R语言︱常用统计方法包+机器学习包(名称、简介)
一.一些函数包大汇总 转载于:http://www.dataguru.cn/thread-116761-1-1.html 时间上有点过期,下面的资料供大家参考基本的R包已经实现了传统多元统计的很多功能 ...
- R语言常用包汇总
转载于:https://blog.csdn.net/sinat_26917383/article/details/50651464?locationNum=2&fps=1 一.一些函数包大汇总 ...
随机推荐
- ubuntu18.04编译jdk8
准备编译环境 sudo apt-get install -y zip unzip build-essential libx11-dev libxext-dev libxrender-dev libxt ...
- Vmware14 开机黑屏或者以独占方式锁定此配置文件失败等问题解决办法
把VMware14版本卸载掉,然后重装一个12版本的 打开之前创建的虚拟机,提示版本不兼容, 打开配置文件: 修改版本为重装的版本,比如12 然后编辑虚拟机设置指定一个系统,比如centos,即可 就 ...
- web自动化环境配置
1.下载chrome浏览器对应版本的驱动 下载地址:https://npm.taobao.org/mirrors/chromedriver 2.下载后将chromedriver放到python安装路径 ...
- python安装BeautifulSoup4
今天学习使用python爬虫,书上说让安装一个BeautifulSoup的插件,网上找了,说是下载压缩文件,直接解压然后,通过两行代码就实现了,我下载了两个,还是无法使用,后来就使用在在Pycharm ...
- [flask]邮件配置-20171227
环境变量配置: # PowerShell设置环境变量: $env:MAIL_USERNAME = "" $env:MAIL_PASSWORD = "" 国内: ...
- 剑指offer刷题笔记
删除链表中重复的结点:较难 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4- ...
- UVA1623 Enter The Dragon (贪心)
题意: m个坑,n天,起初每个坑都是满的,每天至多有一个坑会下雨,下雨就会满,满了再下就输出no. 在没有雨的时候可以安排龙来喝水,把坑喝空,可行的话输出龙喝水的方案 思路: 边读入边操作,set保存 ...
- js 浏览器兼容问题及解决办法
JS中出现的兼容性问题的总结 1.关于获取行外样式 currentStyle 和 getComputedStyle 出现的兼容性问题 我们都知道js通过style不可以获取行外样式,当我们需要获取行 ...
- C2440 “初始化”: 无法从“std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<_Ty>>>”转换为“std::_Vector_iterator<std::_Vector_val<std::_Simple_types<_Ty>>>”
错误原因vs已经提醒的很清楚了:无法将const_iterator转换为iterator 我的出错代码是这样的 思考了很久,最后发现原来是因为将函数定义为const的缘故. 总结:当将函数定义为con ...
- 安装symfony3.4的坑,也是PHP7.3的经典坑之解决办法
对于刚入手symfony3.4的同学,肯定会发现,安装symfony后部署后看到的往往不是hello world,也不是symfony的欢迎页面,而是给你一个下马威,唉,给你来个bug开开胃. 当然这 ...