我已经在文档术语计数级别有一个数据框,注意文档和术语只是用整数索引,分数是加权连续数,如果相关的话,例如:
doc term count
1 2 2
1 5 3.1
2 2 0.4
3 5 5.9
但它目前是一个数据框,我想将其转换为dtm格式,以便使用一些dtm-ready函数(即RNewsflow的“documents.compare”函数)。
我一直试图通过以下方式使用“cast_dtm”:
dtm <- as.matrix(df) %>% cast_dtm(document, term, count)
其中“df”是上面示例的数据框,但是我收到以下错误:
Error in UseMethod("ungroup") : no applicable method for 'ungroup' applied to an object of class "c('matrix', 'double', 'numeric')"
答案 0 :(得分:3)
你快到了。而不是&#34;文件&#34;你需要&#34; doc&#34;作为输入,因为您的列名是doc而不是document。见下面的例子。
library(tidytext)
library(dplyr)
dtm <- df %>% cast_dtm(document = doc, term = term, value = count)
数据:
df <- structure(
list(
doc = c(1L, 1L, 2L, 3L),
term = c(2L, 5L, 2L,5L),
count = c(2, 3.1, 0.4, 5.9)),
.Names = c("doc", "term", "count"),
class = "data.frame",
row.names = c(NA,-4L)
)