我正在努力了解如何使用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()
)?
答案 0 :(得分:1)
slam
包具有简单三元组矩阵的方法:
library(slam)
matprod_simple_triplet_matrix(t(v), m)
或等效地:
crossprod_simple_triplet_matrix(v, m)