我正在努力了解如何使用 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/