2017-05-08 12 views
1

私は単語頻度カウントのスパース行列を生成するためにquantedaパッケージを使用しています。出力がボンナリーになるように変更したいのですが、単純に1または0です。存在するかどうかはわかりますが、スパース行列でこれを行う方法がわかりません。dfmスパース行列の値を置き換えます

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")))) 

答えて

1

あなたはstr(trainingset)を見て持っている場合は、行列のスロットを見ることができます。疎な行列の場合と同様に、xスロットにはデータが格納されているため、これをバイナリに変更することができます。

[email protected] <- as.numeric([email protected] > 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 
関連する問題