R语言中dim函数_R 语言中的矩阵计算

  • Post author:
  • Post category:其他


这方面有需求

很棒的内容,转载不了我就直接扣过来了~~对这方面有需求的读者不妨收藏一下。
d0bc7c3f4cbef1579e6b502a63f03c9f.png

作者:

张丹(Conan)

来源:


前言


R 是作为统计语言,生来就对数学有良好的支持。矩阵计算作为底层的数学工具,有非常广泛的使用场景。用R语言很好地封装了,矩阵的各种计算方法,一个函数一行代码,就能完成复杂的矩阵分解等操作。让建模人员可以更专注于模型推理和业务逻辑实现,把复杂的矩阵计算交给R语言来完成。

本文总结了 R 语言用于矩阵的各种计算操作。


1. 基本操作

# 生成矩阵 


取对角线元素,生成对角矩阵:

# 对角线元素


上三角,下三角:

# 上三角


矩阵转置:

20,


对角矩阵填充:

# 创建方阵


填充后,发现矩阵并不是对称的,原因是上三角取值按列取值,所以先取 10 后取 13,导致上三角和下三角取值顺序不完全一致。

16,


调整后,我们要先转置,再取值再填充,形成对称结构。

20,


矩阵和

data.frame

转换,用行列形成索引结构。

12,


2. 矩阵计算

加法,减法。

# 加载矩阵计算工具包


矩阵值相乘。

> m0*m1
     [,1] [,2] [,3] [,4] [,5]
[1,]   40  395  873  741 1326
[2,]  186  192  480  112 1710
[3,]  189   42  616  180  171
[4,]  112  248  864  432  520


矩阵乘法,满足第二个矩阵的列数和第一个矩阵的行数相等,所以把上面生成的 m0 矩阵( 4 行 5 列)转置为( 5 行 4 列),再用 m1 矩阵( 4 行 5 列),进行矩阵乘法,得到一个 5 行 5 列的结果矩阵。

> t(m0)%*%m1
     [,1] [,2] [,3] [,4] [,5]
[1,]  527  285  649  217  399
[2,] 1423  877 1741  633 1231
[3,] 2319 1469 2833 1049 2063
[4,] 3215 2061 3925 1465 2895