我想像这样转换一个对象
df <- data.frame(ROW = c(1,3),COLUMN =c(2,3),VALUE = c(10,20))
df
ROW COLUMN VALUE
1 2 10
3 3 20
像这样的矩阵
m <-matrix(c(0,10,0,0,0,0,0,0,20),ncol = 3,nrow = 3)
m
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 10 0 0
[3,] 0 0 20
我知道数据框代表一个稀疏矩阵,但我没有找到与我正在寻找的内容完全相关的任何其他问题。
最佳答案
我们可以使用sparseMatrix
library(Matrix)
as.matrix( sparseMatrix(i = df$COLUMN, j= df$ROW, x= df$VALUE))
# [,1] [,2] [,3]
#[1,] 0 0 0
#[2,] 10 0 0
#[3,] 0 0 20
或者创建一个全0的矩阵
然后赋值
m1 <- matrix(0, 3, 3)
m1[as.matrix(df[2:1])] <- df$VALUE
注意:根据输出,ROW/COLUMN
索引似乎是颠倒的
关于R:将行/列索引的数据框转换为矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47037504/