【问题标题】:Removing Isolated Values From Network Matrix with R使用 R 从网络矩阵中删除孤立值
【发布时间】:2017-01-19 18:24:29
【问题描述】:

我有一个如下所示的矩阵:

A=matrix(c(1,2,0,3,4,0,0,0,0),nrow=3,ncol=3,byrow=TRUE)

在这个矩阵中,行名和列名是相同的。每个行/列名称对应一个引用另一个的作者。第 3 行和第 3 列为零。如何通过删除孤立的作者来缩小矩阵既不被引用也不引用任何人?换句话说,我如何删除相交的第 n 列。

tm(文本挖掘)库中,我可以使用 removeSparseTerms 对文档术语矩阵进行处理。

【问题讨论】:

    标签: r matrix sparse-matrix


    【解决方案1】:

    如果您想存储为稀疏矩阵(并自动仅存储非零项),则可以执行以下操作:

    library(Matrix)
    A <- as(A, "sparseMatrix")
    A 
    # 3 x 3 sparse Matrix of class "dgCMatrix"
    # [1,] 1 2 .
    # [2,] 3 4 .
    # [3,] . . .
    

    【讨论】:

      【解决方案2】:

      在基础 R 中使用 colSumsrowSums[,这可以通过

      A[rowSums(A) > 0, colSums(A) > 0]
           [,1] [,2]
      [1,]    1    2
      [2,]    3    4
      

      这将删除任何为零的行或任何列(无引用,无引用)。

      但是,如果矩阵是方形的,并且希望删除列和行都为零的实例,则可以使用

      keepem <- rowSums(A) > 0 | colSums(A) > 0
      A[keepem, keepem]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-24
        • 1970-01-01
        • 2019-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多