R 替换dfm稀疏矩阵中的值

R 替换dfm稀疏矩阵中的值,r,sparse-matrix,R,Sparse Matrix,我正在使用quanteda软件包生成单词频率计数的稀疏矩阵。我想做一个更改,使输出是bonary,所以简单地说是1或0,单词是否存在,但我不确定如何使用稀疏矩阵 install.packages(quanteda) 示例矩阵 trainingset <- as.dfm(matrix(c(1, 2, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0,

我正在使用quanteda软件包生成单词频率计数的稀疏矩阵。我想做一个更改,使输出是bonary,所以简单地说是1或0,单词是否存在,但我不确定如何使用稀疏矩阵

install.packages(quanteda)
示例矩阵

trainingset <- as.dfm(matrix(c(1, 2, 0, 0, 0, 0,
                    0, 2, 0, 0, 1, 0,
                    0, 1, 0, 1, 0, 0,
                    0, 1, 1, 0, 0, 1,
                    0, 3, 1, 0, 0, 1), 
                  ncol=6, nrow=5, byrow=TRUE,
                  dimnames = list(docs = paste("d", 1:5, sep = ""),
                                  features = c("Beijing", "Chinese",  "Japan", "Macao", 
                                               "Shanghai", "Tokyo"))))

trainingset如果查看
str(trainingset)
可以看到矩阵的插槽。与稀疏矩阵一样,
x
槽保存数据,因此您可以使用

trainingset@x <- as.numeric(trainingset@x > 0)

Document-feature matrix of: 5 documents, 6 features (60% sparse).
5 x 6 sparse Matrix of class "dfmSparse"
    features
docs Beijing Chinese Japan Macao Shanghai Tokyo
  d1       1       1     0     0        0     0
  d2       0       1     0     0        1     0
  d3       0       1     0     1        0     0
  d4       0       1     1     0        0     1
  d5       0       1     1     0        0     1
trainingset@x  0)
文档特征矩阵:5个文档,6个特征(60%稀疏)。
“dfmSparse”类的5 x 6稀疏矩阵
特征
北京中国日本澳门上海东京
d1 11100
D201010
D3010100
D40101
D50101