r - Simple Triplet Matrix (Document Term Matrix) 的基本操作

标签 r matrix tm

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

问题似乎出在矩阵未被识别为数字。

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() 将稀疏矩阵转换为密集矩阵。

有没有什么方法可以直接对简单三元组矩阵进行操作,而无需将变换应用到不同的类(如 Matrix 包的 sparseMatrix())?

最佳答案

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

library(slam)

matprod_simple_triplet_matrix(t(v), m)

或等效地:

crossprod_simple_triplet_matrix(v, m)

关于r - Simple Triplet Matrix (Document Term Matrix) 的基本操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22107661/

相关文章:

r - R 中的 Snowball 和 Snowball 包是否不同?

r - 未找到 Python 共享库,未加载 Python 绑定(bind)。在 Mac 上的 RStudio 中

r - 是否可以控制 lapply 函数的速度?

r - Quantmod R 中带有 csv 的 getSymbols

R对象的名称承载多种功能

opengl - 在没有矩阵的情况下旋转 3D 矢量 (OpenGL)

c++ - 在 C++ eigen 中计算的 SSE 值与真实值不同

python - 根据条件随机填充二维矩阵

使用 tm() 从 R 中的语料库中删除非英语文本

r - 即使数据很小 : Error in mcfork() : unable to fork, 可能的原因:无法分配内存