将 dgCMatrix 转换为数据框
Convert a dgCMatrix to data frame
我想将以下稀疏矩阵 dgCMatrix
转换为数据框:
744 x 1 sparse Matrix of class "dgCMatrix"
矩阵如下所示:
$group_x
744 x 1 sparse Matrix of class "dgCMatrix"
1
ABCZ 4
ACDY .
KDEF .
AKDA .
LOLP .
RABQ .
OPWQ .
....
LDLX 10.0
我尝试了通常的 as.data.frame(as.matrix(group_x))
但我得到以下信息:
A data.frame: 1 x 1
V1
<named list>
group_x <S4 class ‘dgCMatrix’ [package “Matrix”] with 6 slots>
寻求的输出是一个 744x2 的数据框,如下所示:
Group Value
ABCZ 4
ACDY 0
KDEF 0
AKDA 0
LOLP 0
RABQ 0
OPWQ 0
....
LDLX 10.0
我认为你的矩阵在列表中。
library(Matrix)
m <- matrix(c(1,4,rep(0,100),10), ncol = 1)
group_x <- as(m, "Matrix")
as.data.frame(as.matrix(..))
工作正常:
str(as.data.frame(as.matrix(group_x)))
## 'data.frame': 103 obs. of 1 variable:
## $ V1: num 1 4 0 0 0 0 0 0 0 0 ...
但是:
gx <- list(group_x)
as.data.frame(as.matrix(gx))
## V1
## 1 <S4 class ‘dgCMatrix’ [package “Matrix”] with 6 slots>
所以如果你有 gx
,那么
data.frame(Group = rownames(gx[[1]]), Value = gx[[1]][,1])
应该可以。
我想将以下稀疏矩阵 dgCMatrix
转换为数据框:
744 x 1 sparse Matrix of class "dgCMatrix"
矩阵如下所示:
$group_x
744 x 1 sparse Matrix of class "dgCMatrix"
1
ABCZ 4
ACDY .
KDEF .
AKDA .
LOLP .
RABQ .
OPWQ .
....
LDLX 10.0
我尝试了通常的 as.data.frame(as.matrix(group_x))
但我得到以下信息:
A data.frame: 1 x 1
V1
<named list>
group_x <S4 class ‘dgCMatrix’ [package “Matrix”] with 6 slots>
寻求的输出是一个 744x2 的数据框,如下所示:
Group Value
ABCZ 4
ACDY 0
KDEF 0
AKDA 0
LOLP 0
RABQ 0
OPWQ 0
....
LDLX 10.0
我认为你的矩阵在列表中。
library(Matrix)
m <- matrix(c(1,4,rep(0,100),10), ncol = 1)
group_x <- as(m, "Matrix")
as.data.frame(as.matrix(..))
工作正常:
str(as.data.frame(as.matrix(group_x)))
## 'data.frame': 103 obs. of 1 variable:
## $ V1: num 1 4 0 0 0 0 0 0 0 0 ...
但是:
gx <- list(group_x)
as.data.frame(as.matrix(gx))
## V1
## 1 <S4 class ‘dgCMatrix’ [package “Matrix”] with 6 slots>
所以如果你有 gx
,那么
data.frame(Group = rownames(gx[[1]]), Value = gx[[1]][,1])
应该可以。