最新のバージョンを使用している場合は、「箱から出して」動作するはずです:
packageVersion("quanteda")
## [1] ‘0.9.6.9’
dfm1 <- dfm(c(doc1 = "This is one sample text sample."), verbose = FALSE)
dfm2 <- dfm(c(doc2 = "Surprise! This is one sample text sample."), verbose = FALSE)
rbind(dfm1, dfm2)
## Document-feature matrix of: 2 documents, 6 features.
## 2 x 6 sparse Matrix of class "dfmSparse"
## is one sample surprise text this
## doc1 1 1 2 0 1 1
## doc2 1 1 2 1 1 1
はfeatures
は、DFMオブジェクト(ヘルプファイルの例がある)であるにも?selectFeatures
を参照してください。
追加:これは正しく列と一致する必要があります行列のための通常のrbind
方法とは異なり、一般的な機能セットに2つのテキストを整列すること
注意。
require(tm)
dtm1 <- DocumentTermMatrix(Corpus(VectorSource(c(doc1 = "This is one sample text sample."))))
dtm2 <- DocumentTermMatrix(Corpus(VectorSource(c(doc2 = "Surprise! This is one sample text sample."))))
rbind(dtm1, dtm2)
## Error in f(init, x[[i]]) : Numbers of columns of matrices must match.
これはほとんどそれを取得しますが、繰り返し機能を複製するようだ:
as.matrix(rbind(c(dtm1, dtm2)))
## Terms
## Docs one sample sample. text this surprise!
## 1 1 1 1 1 1 0
## 1 1 1 1 1 1 1
おかげで、同じ理由から、
rbind()
は実際にDocumentTermMatrixためTMパッケージが異なる用語を持つオブジェクトでは動作しません。 !それは非常に便利なオプション、コードを簡素化します。 –'tm'を使用する場合は、関数 'c'のディスパッチを参照する必要があります。このパッケージは、独自のコードを使用してこのような特別なバインディングを実行します。 "ベースR"自体は(rbindの制限のために)それを行うことはできません。したがって 'c(dtm1、dtm2)'は正しく動作します。ちなみに、「tm」DFMは「quanteda」DFMから直接作成できますが、私が知る限り、その逆はできません。 –
興味深い - 上記の私の編集を参照してください。 –