【R每日一贴】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阶的单位矩阵?
【温馨话语】
三人行,必有我师焉:择其善者而行之,其不善者而改之。
我是陆勤,微信号:wangluqing360,你们在R路上的朋友,一起欣赏R路上的风景。PPV课R语言群:342699237,欢迎朋友们加入,共建最好的R社区。
赠人玫瑰,手有余香。若是觉得此文有用,欢迎分享给更多的人,让更多的人受用。
你若安好,便是晴天。若是朋友们有什么想法或建议,欢迎给我留言或者私信于我。
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!