首页 > 解决方案 > 标记稀疏矩阵 R 的行和列

问题描述

我试图在 R 中“标记”dGC 矩阵的行和列。我得到输入 B(一个矩阵)和两个列表“列”和“行”。一个有代表性的最小例子是:

library(Matrix)
B = matrix(c(0, 4, 0, 1, 0, 0), nrow=2,  ncol=3) 
columns =c("c1","c2","c3")
rows = c("row1","row2")
as(B, "dgCMatrix") 

我想“标记”我的 dGC 矩阵的行和列。特别考虑以下软件包:

install.packages("textir")
library("textir")
data(we8there)
View(we8thereCounts)

我的矩阵应该类似于“textir”包中作为样本数据提供的“we8thereCounts”dgC 矩阵(当然,这归功于 Matt Taddy)。

似乎大多数 R 文本分析包都会自动创建这些矩阵(正确标记),但不幸的是,我以这种“原始”格式继承了数据。谁能指出我有用的命令?

提前致谢!

已编辑:与我的请求相匹配的列数。

标签: rmatrixsparse-matrix

解决方案


您可以使用dimnames<-来设置名称。但请注意,列名和行名中的值数必须与 Matrix 中的列数和行数匹配。在您的示例中,您创建了一个矩阵,nrow=3, ncol=2但随后您有一个columns长度为 3 的向量和一个rows长度为 2 的向量。

这是一个有效的例子

B = matrix(c(0, 4, 0, 1, 0, 0), nrow=2,  ncol=3) 
columns =c("c1","c2","c3")
rows = c("row1","row2")
Bs = as(B, "dgCMatrix") 
dimnames(Bs) = list(rows,columns)

# 2 x 3 sparse Matrix of class "dgCMatrix"
#      c1 c2 c3
# row1  .  .  .
# row2  4  1  .

推荐阅读