これを見ながらRでワードクラウドを書こうとしています。
http://langstat.hatenablog.com/entry/20170509/1494291821
幸いやりたいことは一旦できたのですが、大きめのデータを読ませるとうまく動かないです。
R
1sapply(RMeCabText.result, "[[", 1)
この部分(ライブラリ読み終わってから2行目の一部)がうまく動きません。
R
1 lapply(X = X, FUN = FUN, ...) でエラー: 2 cannot have attributes on a CHARSXP
という感じのエラーが出てしまいます…。
その前の行のMeCabは動いてるみたいなので今回MeCabは関係なくて、単純に長いリスト(lengthは30万ぐらいです)をsapplyできてないとおもっています。
lengthが5000ぐらいのデータならうまくうごきます!
なにか手の施しようはありますでしょうか…。
追加:
KojiDoiさまご回答ありがとうございます!
てさぐりながら、lapply部分をforに書き換えました!
合っていますでしょうか…。
R
1word2 <- list() 2for (i in (1:length(RMeCabText.result))) { 3 class(RMeCabText.result[[i]][1]) 4 word2 <- append(word2, RMeCabText.result[[i]][1]) 5} 6word2 <- unlist(word2)
しかし、今度はRMeCabが重くて?動かなくなってしまった
(Rstudio.appが「R session aborted」と言っている)ので、
今度はテキストファイルを分割して、別々でMeCabにかけてから統合しようとおもいます…。
時間かかってしまいそうだったので途中経過でした。
また書きます〜!
追加(2018/06/17 12:10)
テキストファイルを読み込むところを書き直し、1行ずつ読み込むようにしました!
リストを整形する方法がわからずつまづいているので、もう少しです…!
R
1f<-file("ファイルパス〜〜.txt","r") 2word3 <- list() 3repeat { 4 # for (line in lines) { 5 a<-readLines(con=f,1) 6 print(a) 7 if (length(a) == 0) { 8 break 9 } 10 if (a == "") { 11 next 12 } 13 word3 <- append(word3, RMeCabC(a)) 14}
回答3件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。