LoginSignup
10
16

More than 3 years have passed since last update.

MacでRStudioを使うときのドツボリメモ

Last updated at Posted at 2018-04-05

この記事は「おうち」の外でRStudioを使ってみたはいいけど,「おうちに帰ってうまくできなくて困る」という人のためのものです.

この記事の読者想定

  • R, RStudioのインストールは完了している.
  • 使われるスクリプト(下記を想定)については,他の人からもらったりして,手元にある.
    • .rファイル
    • .rmdファイル
  • 使われるデータ(下記を想定)については,他の人からもらったりして,手元にある.
    • csvファイル
    • rdataファイル

スクリプトを開いて実行するところまで書きます.


スクリプトを開く

日本語が含まれるスクリプトを開いたときの文字化け対策です.

~がスクリプトの中に含まれている場合

上記の操作を行うと~と入っていたものがとして置き換えられる場合があります.
lm()関数なんかを使っている場合に発生)

そのときは,大人しく入力し直しましょう.

もしくは,Coteditorなどを使用してファイルの文字コードを変換しましょう.


テキストエディットを使用して文字コードを変換する

.Rmdファイルや.Rを右クリックして「このアプリケーションから開く」から「テキストエディット」を開きましょう.

スクリーンショット 2019-04-22 13.18.21.png

開いたファイルを複製します.

スクリーンショット 2019-04-22 13.18.46.png

複製したものを指定したファイル名で保存しましょう.

このとき,エンコーディングをUTF-8にします.

スクリーンショット 2019-04-22 13.19.26.png

デフォルトでは保存時にファイル名に.Rmdなどが含まれないので,自分で付与して保存しましょう.


データを開く

Windowsで作成されたRdataをMacで開く

WindowsユーザーからRdataをもらったとき,それをMacで開くと,そこに入っている日本語が化けてしまうことがあります.
これに対応する方法を以下に記します.

データの読み込みの復習

データの読み込みはload関数を使えばよかったですね.
例えば,tofuというデータを次のコマンドによって読み込んだとします.

load("tofu.Rdata")

読み込んだデータの確認

Windowsで作られたものは次のように表示されます.
スクリーンショット 2018-04-05 17.45.10.png

これではなんの事やらわかりません.

ここで,何が文字化けしているかを考えます...
行と列ですね.(因子型データが含まれている場合には,その列を確認しておきます.)

文字コードを変換するための関数

文字コードの変換は関数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")

実際にやってみたのが,次の画像です.
スクリーンショット 2018-04-05 17.49.24.png

同じ要領で列名も直します.

colnames(tofu) <- iconv(colnames(tofu), from = "shift-jis", to = "utf8")

では,文字コードが治ったか確認してみましょう.
スクリーンショット 2018-04-05 17.50.17.png

おめでとう!ちゃんと治りました!!

10
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
16