アメリエフのブログ

Amelieff Staff Blog

R, Rstudioでスクリプト読み込みは文字コードに気を付けて

こんにちは。
今日のテーマは以前もご紹介した、Rでスクリプトの読み込み&実行 です。

Rスクリプトの使い方 - アメリエフのブログ

活用するとこんないいことがあります。

  • いつもの解析コマンドを一気に実行できる
  • 実行した内容がスクリプトに保存できるので、スクリプトが実験ノート的な役割も果たしてくれる
  • インターネットで公開されているコードをコピーして実行できる

統計解析ソフトR でスクリプト読み込みをしたときにエラーが出てしまう・・・
と質問があったのでエラーと対処法についてお話しします。

環境:Windows, Rstudio*1

> source("C:/Users/AmelieffTarou/Desktop/script.R")

In addition: Warning message:
In strsplit(code, "\n", fixed = TRUE) :
  input string 1 is invalid in this locale
Show Traceback
Error in file(filename, "r", encoding = encoding) : cannot open the connection

input string 1 is invalid encodingと書かれているのでエンコード...文字コードが怪しいと分かります。

文字コードを揃えよう

対処法として、スクリプトを作成・保存するときと、読み込むときに文字コードを揃えることが重要です。
Rやプログラミング界隈で使うには utf-8 がおすすめです。

スクリプトをメモ帳で保存する際に文字コードにも気をつけみてください。

スクリプトを読み込む際にも、Rのコマンドで使用する文字コードを設定できます。 設定コマンドの実行後にスクリプトの読み込みを実行します。

options(encoding = "utf-8")
source("C:/Users/AmelieffTarou/Desktop/script.R")

Rstudioの機能を活用

Rstudioの左上にスクリプトを書くウインドウがあります。
こちらにコマンドを書いたり、コピペしたりして実行すれば文字コードの問題はないはずです。  

f:id:Fuku-I:20201022150650p:plain:w500

💾 もしくは File > Save から保存
File > Open File... から、保存したファイルを開きます。

Source ボタンから実行すると、自動でsourceコマンドが動き、中身のコマンドが実行されます。
f:id:Fuku-I:20201022151816p:plain:w300


それでは、よいRライフを〜