admin 发表于 2014-9-5 07:58:58

R矩阵那些事(一)

R矩阵是R一种重要的数据结构。关于矩阵,谈谈这些事。事情一:矩阵创建。R矩阵创建可使用matrix()函数,举例说明如下。> data1 <- 1:6> data1 1 2 3 4 5 6> matrix1 <- matrix(data1, 2, 3)> matrix1   [,1] [,2] [,3]    1    3    5    2    4    6说明:1)可以使用0或者NA对矩阵进行初始化操作,例如。> matrix2 <- matrix(0, 2, 3)> matrix2   [,1] [,2] [,3]    0    0    0    0    0    0> matrix3 <- matrix(NA, 2, 3)> print(matrix3)   [,1] [,2] [,3]   NA   NA   NA   NA   NA   NA      2)可以通过对于一个向量数据进行维数设置,生成矩阵,例如。> vc1 <- c(1, 3, 5, 7)> vc1 1 3 5 7> dim(vc1) <- c(2, 2)> vc1   [,1] [,2]    1    5    3    7提示:matrix()函数具有非常强大的功能,函数也包括非常丰富的参数,详细描述,参考R帮助文档,即help(matrix)或者?matrix事情二:矩阵运算。矩阵运算常有矩阵转置、矩阵求逆、矩阵乘法或者构建一个单位矩阵等。矩阵转置,可用t()函数,例如。> matrix4 <- matrix(c(2, 4, 6, 8), 2, 2)> matrix4   [,1] [,2]    2    6    4    8> t(matrix4)   [,1] [,2]    2    4    6    8矩阵求逆,可用solve()函数,例如。> solve(matrix4)   [,1][,2] -1.00.750.5 -0.25矩阵乘法运算,使用运算符%*%,例如。> matrix4 %*% solve(matrix4)   [,1] [,2]    1    0    0    1构建单位矩阵或者对角矩阵,可用diag()函数,例如。> diag(3)   [,1] [,2] [,3]    1    0    0    0    1    0    0    0    1> diag(2, 3)   [,1] [,2] [,3]    2    0    0    0    2    0    0    0    2> diag(matrix4) 2 8> diag(c(1, 2, 3), 3)   [,1] [,2] [,3]    1    0    0    0    2    0    0    0    3提示:关于矩阵常用运算函数,详细描述都可以查阅R帮助文档。
【想一想】1 如何创建矩阵?结合你的实际工作。2 A %*% B 和 A*B有什么区别?【做一做】1 创建一个数值型的矩阵,对矩阵进行转置和求逆运算?2 创建一个4阶的单位矩阵?

小R来逛逛 发表于 2016-4-20 17:38:11

非常感谢,支持多多共享好的资源

fish7 发表于 2016-8-24 10:22:22

> matrix(NA,2,3)      等价于   matrix(,2,3)
   [,1] [,2] [,3]
   NA   NA   NA
   NA   NA   NA

页: [1]
查看完整版本: R矩阵那些事(一)