Tex, python, illusrator, VPSの学生ノート

latotex-blog

R

Anaconda PromptでRのエラーメッセージの文字化けを解消する

投稿日:







AnacondaにRをインストールする方法は以下の記事で紹介しています。
今回は、以下の記事でインストールしたRのエラーメッセージが文字化けするときの解決方法を載せておきます。
windowsの場合なので、Macの場合は違うかもしれません。

エラーの文字化けというのはこんな感じです。

$ Rscript "C:/Users/user/Desktop/R_plot/Rcode.R"
      Registered S3 methods overwritten by 'ggplot2':
  method         from
  [.quosures     rlang
  c.quosures     rlang
  print.quosures rlang
Registered S3 method overwritten by 'rvest':
  method            from
  read_xml.response xml2
-- Attaching packages --------------------------------------- tidyverse 1.2.1 --
 ggplot2 3.1.1        purrr   0.3.2
 tibble  2.1.1        dplyr   0.8.0.1
 tidyr   0.8.3        stringr 1.4.0
 readr   1.3.1        forcats 0.4.0
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
 xbZ[W:
 pbP[W 'latex2exp' ヘo[W 3.6.3 フ R フコナ「ワオス
Parsed with column specification:
cols(
  school = col_character(),
  group = col_character(),
  height = col_double(),
  weight = col_double()
)
Saving 7 x 7 in image
 xbZ[W:
 is.na(x) ナ:
   is.na() ヘ^ 'expression' フxNgAXgネOノKpウワキ
    

特に最後の行が解読不可能です・・・・

スポンサーリンク

解決方法

忙しい方のために、先に解決方法を紹介します。
エディタで以下の内容を入力し「.Rprofile」という名前をつけ、ホームディレクトリに保存するだけです。

Sys.setlocale("LC_ALL","English")

ホームディレクトリとはjupter notebookで「cd .」と入力したときに表示されるパスのことです。

Rprofileってなに?

Rコードを実行する前に読み込んでくれるファイルのことです。
linuxを使ったことがある方であれば、bash.profileのRバージョンだと思っていただければ分かりやすいと思います。

文法はRなので、「Sys.setlocale("LC_ALL","English")」を実行したいRコードに書いても問題ありません。
例えば、以前紹介した散布図を作るRコードの冒頭にこの1行を入れて実行すると

$ Rscript "C:/Users/user/Desktop/R_plot/Rcode.R"
      [1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"
Registered S3 methods overwritten by 'ggplot2':
  method         from
  [.quosures     rlang
  c.quosures     rlang
  print.quosures rlang
Registered S3 method overwritten by 'rvest':
  method            from
  read_xml.response xml2
-- Attaching packages --------------------------------------- tidyverse 1.2.1 --
v ggplot2 3.1.1       v purrr   0.3.2
v tibble  2.1.1       v dplyr   0.8.0.1
v tidyr   0.8.3       v stringr 1.4.0
v readr   1.3.1       v forcats 0.4.0
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
Warning message:
package 'latex2exp' was built under R version 3.6.3
Parsed with column specification:
cols(
  school = col_character(),
  group = col_character(),
  height = col_double(),
  weight = col_double()
)
Saving 7 x 7 in image
Warning message:
In is.na(x) : is.na() applied to non-(list or vector) of type 'expression'
    

エラーの文字化けが直っていることがわかります。
しかし、毎回Rコードに記入するのは大変なのでRprofileのファイルをつくる必要があります。
毎回つかうパッケージもRprofileに記入すれば「import()」する必要はなくなりますが、Rコードを他人に見せる場合は不親切なので、なんでもRprofileに書くのは良くないと思います。

なぜ文字化けが起こる?

Rのsetlocalはを使用しているPCのOSなどから自動的に設定してくれます。
「Sys.getlocal()」で確認でき、実行してみると以下の表示がされます

Sys.setlocale("LC_ALL","English")
    [1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932"

しかし、Anaconda promptは英語表記が普通なので、日本語にすると文字化けしてしまいます。Rstadioをインストールする場合は文字化けを気にする必要はなく、エラーメッセージを日本語で受け取れますが英語のエラーメッセージの方がググったときに解決方法が見つかりやすいので英語表示をオススメします。

参考にしたサイト様

local指定方法
https://stackoverflow.com/questions/16347731/how-to-change-the-locale-of-r

-R
-

Copyright© latotex-blog , 2020 All Rights Reserved Powered by STINGER.