2.Windowsから持ってきたスクリプトをCentOSのRで実行する
やりたいこと:Windowsから持ってきたスクリプトをCentOSのRで実行する
環境:Windows7→CentOS5.3
【状況】
とりあえず動くが,以下のような警告が出るのが気になる
Warning messages:
1: In grepl("\n", lines, fixed = TRUE) :
入力文字列 92 はこのロケールでは不適切です
【原因】
Windowsから持ってきたスクリプトのコメント部に日本語が書いてあり,Rを動かしている端末の文字コード設定と合っていないらしい
【確認方法その1】
emacsでスクリプトファイルを開き,下部のバーを見る→S(DOS)と書いてある
【確認方法その2】
端末で以下のコマンドを実行する
→Shift_JISと表示された
(Windowsから持ってきたんだから,確かにShift-JISだわな)
端末の文字コードの確認方法
$ env|grep LANG
LANG=ja_JP.EUC-JP
【解決策】
R上でスクリプトを実行する際に,スクリプトファイルの文字コードも指定する
> source("スクリプトファイル名", encoding="Shift_JIS")
【感想】
Warningは消えたけど,肝心の実験結果が悪いのは解決してくれないんよな….
【追記】
毎回文字コードを指定するのがメンドクサイので,スクリプトファイルの文字コードをEUCに変換したほうがよさそう.
$ nkf -e 旧スクリプトファイル > 新スクリプトファイル
#注意:旧スクリプトファイル名と新スクリプトファイル名を同じにすると中身が消えます!
#Shift-JISに変換するときは-s,UTF8に変換するときは-w