不正な入力がないだろうと思われるデータなのに不正な入力がありましたと言われた時は文字コードを疑う
read.csv()で不正な入力がありましたと言われる。 警告だけだからまあ無視するかと思いきやデータを読み込めていない。
> data <- read.csv('data/hoge.csv', as.is = TRUE, fileEncoding = "CP932") 警告メッセージ: 1: read.table(file = file, header = header, sep = sep, quote = quote, で: 入力コネクション ''data/hoge.csv' に不正な入力がありました 2: read.table(file = file, header = header, sep = sep, quote = quote, で: incomplete final line found by readTableHeader on 'data/hoge.csv' > nrow(data) [1] 0
もしやと思い文字コードをUTF-8に指定してみるとうまくいく。
> data <- read.csv('data/hoge.csv', as.is = TRUE, fileEncoding = "UTF-8") > nrow(data) [1] 10
普段エクセルでしかデータを扱っていない方なので大体もらうデータはCP932なのだが システム部から出力してもらったデータらしくUTF-8が紛れ込んでいたというオチだった。