この記事は「おうち」の外でRStudioを使ってみたはいいけど,「おうちに帰ってうまくできなくて困る」という人のためのものです.
この記事の読者想定
- R, RStudioのインストールは完了している.
- 使われるスクリプト(下記を想定)については,他の人からもらったりして,手元にある.
-
.r
ファイル -
.rmd
ファイル
-
- 使われるデータ(下記を想定)については,他の人からもらったりして,手元にある.
-
csv
ファイル -
rdata
ファイル
-
スクリプトを開いて実行するところまで書きます.
スクリプトを開く
日本語が含まれるスクリプトを開いたときの文字化け対策です.
~
がスクリプトの中に含まれている場合
上記の操作を行うと~
と入っていたものが・
として置き換えられる場合があります.
(lm()
関数なんかを使っている場合に発生)
そのときは,大人しく入力し直しましょう.
もしくは,Coteditorなどを使用してファイルの文字コードを変換しましょう.
テキストエディットを使用して文字コードを変換する
.Rmd
ファイルや.R
を右クリックして「このアプリケーションから開く」から「テキストエディット」を開きましょう.
![スクリーンショット 2019-04-22 13.18.21.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F62741%2F43569ae4-abb0-ac17-5582-c8e76ce948bd.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=80d2905c8131ce96e1c79ecca737d62e)
開いたファイルを複製します.
![スクリーンショット 2019-04-22 13.18.46.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F62741%2Fb6952120-25a5-dbe6-07e1-8eb584ce2491.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=f2493e8f86029ac3fc24cbefb3ee50de)
複製したものを指定したファイル名で保存しましょう.
このとき,エンコーディングをUTF-8
にします.
![スクリーンショット 2019-04-22 13.19.26.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F62741%2F5ea31e57-1a6b-168a-1a1c-c6b17cfb3e72.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=df8389bd885d9006bec6be84ac275f1f)
デフォルトでは保存時にファイル名に.Rmd
などが含まれないので,自分で付与して保存しましょう.
データを開く
Windowsで作成されたRdataをMacで開く
WindowsユーザーからRdataをもらったとき,それをMacで開くと,そこに入っている日本語が化けてしまうことがあります.
これに対応する方法を以下に記します.
データの読み込みの復習
データの読み込みはload
関数を使えばよかったですね.
例えば,tofu
というデータを次のコマンドによって読み込んだとします.
load("tofu.Rdata")
読み込んだデータの確認
これではなんの事やらわかりません.
ここで,何が文字化けしているかを考えます...
行と列ですね.(因子型データが含まれている場合には,その列を確認しておきます.)
文字コードを変換するための関数
文字コードの変換は関数iconv
によって可能です.
使い方は
iconv(x, from = "", to = "", sub = NA, mark = TRUE, toRaw = FALSE)
とします.
以下で具体的に確認しましょう.
文字化けしたデータフレームを直す
まずは,行名を直します.
rownames(tofu)
でデータフレームtofu
の行のラベルを参照できます.
ここでの文字コードがshift-jis
である事によって文字化けしているので,次のように直します.
rownames(tofu) <- iconv(rownames(tofu), from = "shift-jis", to = "utf8")
同じ要領で列名も直します.
colnames(tofu) <- iconv(colnames(tofu), from = "shift-jis", to = "utf8")
おめでとう!ちゃんと治りました!!