R语言 如何把稀疏矩阵转换为密集矩阵

R语言 如何把稀疏矩阵转换为密集矩阵

R是一种用于进行统计计算和图形化的编程语言。它目前得到了R核心团队和R统计计算基金会的支持和帮助。对于数据分析和统计软件的创建,R编程语言被统计学家、生物信息学家和数据挖掘者所使用。R编程语言是数据挖掘方面最受欢迎的语言之一。

在这篇文章中,我们将看到如何在R语言中读取和转换稀疏矩阵为密集矩阵。

稀疏矩阵和密集矩阵

稀疏矩阵是指其大部分元素为零值的任何矩阵,而密集矩阵正好相反,即大部分元素为非零值的矩阵。

The following is a spares matrix:
[[0, 0, 0, 1],
 [7, 0, 0, 0]]

While, below is a dense matrix:
[[1, 9, 0, 2],
 [8, 3, 5, 4]]
R

矩阵包

我们将在矩阵包的帮助下完成这一工作。矩阵包帮助我们在R中进行矩阵操作。让我们先安装这个包。你可以使用以下命令进行安装。

install.packages("Matrix")
R

为了将稀疏矩阵转换为密集矩阵,我们将使用as.matrix()方法。它接收data.table对象并将其转换为矩阵。

语法

as.matrix(x, rownames=NULL, rownames.value=NULL)

参数

  • x: data.table对象。
  • rownames: 列名或数字,作为结果中的rownames使用。它是可选的。
  • rownames.value: 在结果矩阵中用作轮值的数值。它是可选的。

例1: 在这个例子中,我有一个6 x 7的稀疏矩阵,有4个非零条目,我使用as.matrix()方法将其转换为密集矩阵。

library(Matrix)
i <- c(1, 4, 5, 6)
j <- c(2, 7, 3, 1)
x <- c(8, 1, 9, 2)
sm <- sparseMatrix(i, j, x = x)
print(sm)
dm <- as.matrix(sm)
dm
R

输出

如何在R中把稀疏矩阵转换为密集矩阵?

例2: 在这个例子中,我有一个7 x 8的稀疏矩阵,有6个非零项,我用as.matrix()方法将其转换成密集矩阵。我使用了rpois方法来生成随机数。

library(Matrix)
i <- c(1, 5, 2, 3, 7, 2)
j <- c(8, 4, 2, 1, 6, 1)
x <- rpois(6, 3)
sm <- sparseMatrix(i, j, x = x)
print(sm)
dm <- as.matrix(sm)
dm
R

输出

如何在R中把稀疏矩阵转换为密集矩阵?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册