library(textmineR)document term matrix は,行方向は文書名,列方向は単語名からなる,行列です。
data("nih_sample")
# Convert a character vector to a document term matrix
dtm <- CreateDtm(doc_vec = nih_sample$ABSTRACT_TEXT,
doc_names = nih_sample$APPLICATION_ID,
ngram_window = c(1,1))
> class(dtm)
[1] "dgCMatrix"
attr(,"package")
[1] "Matrix"
> dim(dtm)
[1] 100 5210
> write.csv(dtm, "dtm.csv")行列なのでcsv出力できると思っていましたが,できません。
as.data.frame.default(x[[i]], optional = TRUE) でエラー:
cannot coerce class "structure("dgCMatrix", package = "Matrix")" to a data.frame
>
> str(dtm)この dtm の,100行*5210列の行列をcsvファイル出力できる方法について,ご教示いただけましたら助かります。
Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
..@ i : int [1:14073] 99 99 99 99 99 99 99 99 99 99 ...
..@ p : int [1:5211] 0 1 2 3 4 5 6 7 8 9 ...
..@ Dim : int [1:2] 100 5210
..@ Dimnames:List of 2
.. ..$ : chr [1:100] "8693991" "8693362" "8607498" "8697008" ...
.. ..$ : chr [1:5210] "consumer" "attempt" "voucher" "allocated" ...
..@ x : num [1:14073] 1 1 1 1 1 1 1 1 1 1 ...
..@ factors : list()
No.22391 Re: R ファイル出力 【青木繁伸】 2017/06/11(Sun) 08:06
"R dgCMatrix write" で検索すると
https://stackoverflow.com/questions/4558277/write-a-sparse-matrix-to-a-csv-in-r
なんかが出てきて,
as.matrix で行列にできる(as.matrix(dtm) とする)というのが書かれているけど,
それは資源の無駄遣いなので writeMM を使うべき(?)とかも書かれています
https://stackoverflow.com/questions/17574099/in-r-how-do-you-write-a-sparse-matrix-to-a-file
には writeMM と readMM について書かれている。
その他のページも見てください。
No.22392 Re: R ファイル出力 【明石】 2017/06/11(Sun) 10:46
青木先生,
いつもお世話になり,ありがとうございます,明石と申します。
いつもありがたいご教示をいただきまして,誠にありがとうございます。
助かりました。
さっそく勉強させていただきます。
ありがとうございました。
● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る