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阶的单位矩阵?
|