稀疏矩阵 R 的标签行和列

label rows and columns of a sparse Matrix R

我正在尝试 "label" R 中 dGC 矩阵的行和列。我正在获取输入 B(矩阵)和两个列表 "columns" 和 "rows"。一个有代表性的最小例子是:

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") 

我想 "label" 我的 dGC 矩阵的行和列。特别考虑以下包:

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

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

似乎大多数 R 的文本分析包都会自动创建这些矩阵(正确标记),但不幸的是,我以这种 "raw" 格式继承了数据。任何人都可以指出有用的命令吗?

提前致谢!

已编辑:符合我要求的列数。

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

这是一个有效的例子

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  .