简单三元组矩阵的基本操作(文档术语矩阵)

时间:2014-02-28 23:19:28

标签: r matrix tm

我正在努力了解如何使用TermDocumentMatrix() tm包生成的简单三元组矩阵进行基本操作。

似乎问题可能是矩阵未被识别为数字。

library(tm)
data("crude")
tdm <- TermDocumentMatrix(crude)

vector <- tdm[,1]
matrix <- tdm[,2:20]

multiplication <- t(vector) %*% matrix

# Error in t(vector) %*% matrix : 
#   requires numeric/complex matrix/vector arguments

但是

multiplication <- t(as.matrix(vector)) %*% as.matrix(matrix)
multiplication
# Docs
# Docs  144 191 194 211 236 237 242 246 248 273 349 352 353 368 489 502 543 704 708
# 127 232  56  62  65 201 214  61 159 244 197  51  90  71  84  96 126  90 152  11

我有一个非常大的术语文档矩阵,它不允许我使用as.matrix()将稀疏矩阵转换为密集矩阵。

有没有办法直接在Simple Triplet Matrix上运行而不将转换应用到不同的类(如Matrix包的sparseMatrix())?

1 个答案:

答案 0 :(得分:1)

slam包具有简单三元组矩阵的方法:

library(slam)

matprod_simple_triplet_matrix(t(v), m)

或等效地:

crossprod_simple_triplet_matrix(v, m)