标记稀疏矩阵R的行和列

时间:2018-07-05 11:59:27

标签: r matrix sparse-matrix

我试图在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的文本分析程序包都会自动创建这些矩阵(正确标记),但是不幸的是,我以“原始”格式继承了数据。谁能指出我有用的命令?

谢谢!

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

1 个答案:

答案 0 :(得分:1)

您可以使用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  .