这方面有需求

作者:
张丹(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