2017-12-15 10 views
2

私はRでtmを使用し、10kドキュメントを扱っています。私は索引でいくつかを調べたかったが、ファイルと一致していなかった。 tmは大量の文書を奇妙な順序で読み込むのはなぜですか、そしてそれはどのように修正/改ざんできますか?大量のドキュメントを読み込むtmパッケージを異常な順序で修正するには?

library(tm) 

docs <- c() 
for (i in 1:10000) { 
    docs <- c(docs, paste('test', i)) 
} 

cor <- VCorpus(VectorSource(docs)) 

filepath = '/home/nate/Dropbox/MSDS/MSDS682_ncg_F8W2_17/test_cor' 
writeCorpus(cor, path = filepath) 

cor2 <- VCorpus(DirSource(filepath)) 

as.character(cor2[[1]]) 
as.character(cor2[[2]]) 
as.character(cor2[[3]]) 
as.character(cor2[[4]]) 

これはアウト出力します:

test 10000 
test 1000 
test 1001 
test 1002 

答えて

3

この結果は原因writeCorpusによって作成されたファイル名には、約来てここでは一例です。あなたは、彼らがソート代わりにあなたの予想数値のテキストを使用して来ているDirSourceバックでそれらを読んだとき、あなたのパスであなたは1.txt, 10.txt, 100.txt, 1000.txt, 1001.txt ... n.txt

という名前のファイルを検索します。意図したとおりに、あなたが例えば、writeCorpusfilenames引数を追加することができ、あなたのソート順序を維持するために

ファイル出力、 00001.txt, 00002.txt, 00003.txt ... n.txtを行います、と背中ディスクからのインポートがで読み込まれます
writeCorpus(
    cor, 
    path = filepath, 
    filenames = paste0(sprintf("%05d", 1:length(cor)), ".txt") 
) 

正しい順序。

関連する問題