R_ファイル処理 の変更点 - RとLinuxと...

RとLinuxと...


R_ファイル処理 の変更点


[[Rの備忘録]]

RMeCabでファイルを読み込む関数,例えば RMeCabText() で,第一引数に file.exists() 関数を適用している.これだと,文字列をファイルと偽装して読み込ませるtextConnection()関数が使えない.readLines()風に実装を変える必要がある.
 > readLines
 function (con = stdin(), n = -1, ok = TRUE, warn = TRUE, 
     encoding =  "unknown") 
 {
    if (is.character(con)) {
        con <- file(con, "r")
        on.exit(close(con))
    }
    .Internal(readLines(con, n, ok, warn, encoding))
 }
 <environment: namespace:base>

回避策としては,以下を提案できる

 td <- tempfile("tmp")
  write( "私は真面目な学生です。",  file = td)
 # library(RMeCab)
 test <- RMeCabText(td)
 test

 dummy <- c ("私は真面目な学生です。", "彼女は数学専攻の学生です。", "すももももももものうち")
 dummyList <- list (length (dummy))
 td <- tempfile("tmp")
 
 for (i in   seq(dummy) ){                
    write( dummy [i] ,  file = td)# paste(td, "D1", sep="/") )
    dummyList [[i]] <- RMeCabText(td)
 }
 
 dummyList 
 unlink (td)