【RStudio/Mac】基本的な操作まとめ(ディレクトリの確認/ファイルの読み込み/値の抽出)
最近、『Rによるやさしい統計学』を読みながらR言語とRStudioに触れており、基本的なRStudioでのファイル読み込みやデータの抽出などでつまづいたいくつかの点をまとめる。
以下のコマンドはMac OS上でRStudioを操作する場合のものであることをご了承ください。
エラーメッセージの言語を英語にする
consoleで以下を実行
Sys.setenv(LANG="en")
せっかく日本語で表示されるのはいいのだけれど、出力されるエラーメッセージを検索するなら英語の方がGoogle検索しやすいので英語に設定する。
検索するほどRを使えていないのだけれど、今後のためにも。
現在のディレクトリの確認/作業ディレクトリの移動
RStudioではconsole上でディレクトリの移動ができる。
読み込むファイル(後述)のパスの書き方に関わるので、適切なディレクトリに移動する必要がある。
csvファイルの読み込み
読み込みたいディレクトリに 移動してから、consoleで以下を実行
df <- read.csv('shidouhouU8.csv')
dfとだけ実行すると結果が表示される
df # 実行結果 SID name sex math stat psych_test stat_test1 stat_test2 method 1 1 大村 男 嫌い 好き 13 6 10 C 2 2 本多 男 嫌い 好き 14 10 13 B 3 3 川崎 男 好き 好き 7 6 8 B 4 4 多村 男 好き 好き 12 10 15 A 5 5 松中 男 嫌い 嫌い 10 5 8 B 6 6 小久保 男 嫌い 嫌い 6 3 6 C 7 7 柴原 男 嫌い 嫌い 8 5 9 A 8 8 井手 男 嫌い 嫌い 15 9 10 D 9 9 田上 男 嫌い 嫌い 4 3 7 D 10 10 松田 男 好き 嫌い 14 3 3 D 11 11 高谷 女 好き 好き 9 11 18 A 12 12 杉内 女 嫌い 好き 6 6 14 A 13 13 和田 女 好き 好き 10 11 18 A 14 14 新垣 女 嫌い 嫌い 12 9 11 C 15 15 大隣 女 嫌い 好き 5 7 12 B 16 16 水田 女 好き 嫌い 12 5 5 D 17 17 斉藤 女 嫌い 嫌い 8 8 7 C 18 18 柳瀬 女 嫌い 嫌い 8 7 12 C 19 19 佐藤 女 嫌い 嫌い 12 7 7 B 20 20 馬原 女 嫌い 嫌い 15 9 7 D
読み込んだデータフレームから特定のカラムを抽出する
mathのカラムの値だけを取り出したい場合は以下を実行
> df$math # 実行結果 [1] "嫌い" "嫌い" "好き" "好き" "嫌い" "嫌い" "嫌い" "嫌い" "嫌い" "好き" "好き" "嫌い" [13] "好き" "嫌い" "嫌い" "好き" "嫌い" "嫌い" "嫌い" "嫌い"
データフレームの変数と指定するカラム名の間に「$」をつける。
そのまま変数に格納することももちろん可能
> math <- df$math
読み込んだデータフレームのカラムごとにフィルターをかける
データフレームの中でsexカラムが「男」の行だけを抽出する場合は以下を実行
> df[df$sex=="男",] # 実行結果 SID name sex math stat psych_test stat_test1 stat_test2 method 1 1 大村 男 嫌い 好き 13 6 10 C 2 2 本多 男 嫌い 好き 14 10 13 B 3 3 川崎 男 好き 好き 7 6 8 B 4 4 多村 男 好き 好き 12 10 15 A 5 5 松中 男 嫌い 嫌い 10 5 8 B 6 6 小久保 男 嫌い 嫌い 6 3 6 C 7 7 柴原 男 嫌い 嫌い 8 5 9 A 8 8 井手 男 嫌い 嫌い 15 9 10 D 9 9 田上 男 嫌い 嫌い 4 3 7 D 10 10 松田 男 好き 嫌い 14 3 3 D
「$」以外は基本的にPythonのpandasと同じような絞り込みが可能のようだが、「,」のつけ忘れに注意。
比較演算子を用いて特定の数値の絞り込みももちろん可能
> df[df$psych_test>10,] #psych_testが10より大きいデータフレームだけ抽出 # 実行結果 SID name sex math stat psych_test stat_test1 stat_test2 method 1 1 大村 男 嫌い 好き 13 6 10 C 2 2 本多 男 嫌い 好き 14 10 13 B 4 4 多村 男 好き 好き 12 10 15 A 8 8 井手 男 嫌い 嫌い 15 9 10 D 10 10 松田 男 好き 嫌い 14 3 3 D 14 14 新垣 女 嫌い 嫌い 12 9 11 C 16 16 水田 女 好き 嫌い 12 5 5 D 19 19 佐藤 女 嫌い 嫌い 12 7 7 B 20 20 馬原 女 嫌い 嫌い 15 9 7 D
sexが男のstat_test1の列を抽出したい場合は以下の通り
> df[df$sex=="男",]$stat_test1 # 実行結果 [1] 6 10 6 10 5 3 5 9 3 3