【问题标题】:label rows and columns of a sparse Matrix R标记稀疏矩阵 R 的行和列
【发布时间】:2018-12-13 21:44:33
【问题描述】:

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

提前致谢!

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

【问题讨论】:

    标签: r matrix sparse-matrix


    【解决方案1】:

    您可以使用dimnames<- 来设置名称。但请注意,列名和行名中的值数必须与 Matrix 中的列数和行数匹配。在您的示例中,您使用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  .
    

    【讨论】:

    • 非常感谢。正如您指出的那样,我编辑了矩阵尺寸。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2021-05-18
    • 2012-01-10
    • 2013-11-29
    • 2013-06-26
    相关资源
    最近更新 更多