大数据人|大数据第一社区

标题: R矩阵那些事(一) [打印本页]

作者: admin    时间: 2014-9-5 07:58
标题: R矩阵那些事(一)

R矩阵是R一种重要的数据结构。

关于矩阵,谈谈这些事。

事情一:矩阵创建。R矩阵创建可使用matrix()函数,举例说明如下。

> data1 <- 1:6> data1[1] 1 2 3 4 5 6> matrix1 <- matrix(data1, 2, 3)> matrix1     [,1] [,2] [,3][1,]    1    3    5[2,]    2    4    6

说明:1)可以使用0或者NA对矩阵进行初始化操作,例如。

> matrix2 <- matrix(0, 2, 3)> matrix2     [,1] [,2] [,3][1,]    0    0    0[2,]    0    0    0> matrix3 <- matrix(NA, 2, 3)> print(matrix3)     [,1] [,2] [,3][1,]   NA   NA   NA[2,]   NA   NA   NA

      2)可以通过对于一个向量数据进行维数设置,生成矩阵,例如。

> vc1 <- c(1, 3, 5, 7)> vc1[1] 1 3 5 7> dim(vc1) <- c(2, 2)> vc1     [,1] [,2][1,]    1    5[2,]    3    7

提示:matrix()函数具有非常强大的功能,函数也包括非常丰富的参数,详细描述,参考R帮助文档,即help(matrix)或者?matrix

事情二:矩阵运算。矩阵运算常有矩阵转置、矩阵求逆、矩阵乘法或者构建一个单位矩阵等。

矩阵转置,可用t()函数,例如。

> matrix4 <- matrix(c(2, 4, 6, 8), 2, 2)> matrix4     [,1] [,2][1,]    2    6[2,]    4    8> t(matrix4)     [,1] [,2][1,]    2    4[2,]    6    8

矩阵求逆,可用solve()函数,例如。

> solve(matrix4)     [,1]  [,2][1,] -1.0  0.75[2,]  0.5 -0.25

矩阵乘法运算,使用运算符%*%,例如。

> matrix4 %*% solve(matrix4)     [,1] [,2][1,]    1    0[2,]    0    1

构建单位矩阵或者对角矩阵,可用diag()函数,例如。

> diag(3)     [,1] [,2] [,3][1,]    1    0    0[2,]    0    1    0[3,]    0    0    1> diag(2, 3)     [,1] [,2] [,3][1,]    2    0    0[2,]    0    2    0[3,]    0    0    2> diag(matrix4)[1] 2 8> diag(c(1, 2, 3), 3)     [,1] [,2] [,3][1,]    1    0    0[2,]    0    2    0[3,]    0    0    3

提示:关于矩阵常用运算函数,详细描述都可以查阅R帮助文档。


【想一想】

1 如何创建矩阵?结合你的实际工作。

2 A %*% B 和 A*B有什么区别?

【做一做】

1 创建一个数值型的矩阵,对矩阵进行转置和求逆运算?

2 创建一个4阶的单位矩阵?



作者: 小R来逛逛    时间: 2016-4-20 17:38
非常感谢,支持多多共享好的资源
作者: fish7    时间: 2016-8-24 10:22
> matrix(NA,2,3)      等价于     matrix(,2,3)
     [,1] [,2] [,3]
[1,]   NA   NA   NA
[2,]   NA   NA   NA






欢迎光临 大数据人|大数据第一社区 (http://www.bigdata.ren/) Powered by Discuz! X3.2