読者です 読者をやめる 読者になる 読者になる

いずにゃんの研究日記

専門性を広げるための練習場

日本語データの入ったcsvを読む込む(Windowsの場合)

R

今回はたぶんWindows限定の内容な気がする。RStudioはVersion 1.0.44を使用。


csvファイルを用意する

いつものように「ラブライブ!サンシャイン!!」から,スクールアイドルグループAqoursのメンバーのデータを使用する。

library(tidyverse)
dat <-
  data_frame(
    name=c("高海千歌","桜内梨子","松浦果南","黒澤ダイヤ","渡辺曜","津島善子","国木田花丸","小原鞠莉","黒澤ルビィ"),
    grade=c(2,2,3,3,2,1,1,3,1), #学年
    height=c(157,160,162,162,157,156,152,163,154), #身長
    B=c(82,80,83,80,82,79,83,87,76), #バスト
    W=c(59,58,58,57,57,58,57,60,56), #ウエスト
    H=c(83,82,84,80,81,80,83,84,79)  #ヒップ
  )

今回はこのデータをcsvファイルにエクスポートする。まずどこにファイルが出力されるか確認するために,現在の作業ディレクトリ(フォルダ)の確認をする。

getwd()

場所を変更したい場合は,以下のコードで指定できる。なおRStudioなら,Ctrl + Shift + Hのショートカットで同じことができる。

setwd(choose.dir()) 
#実行すると一見なにも起きてないようになるけど,画面下部のタスクバーに新しいプログラムが動作しているお知らせがでるので,それを開くと場所を指定できるはず。

次のコードでcsvファイルのエクスポート完了である。

write.csv(dat, "aqours.csv",row.names = FALSE)


csvファイルを読み込む

さて,それではRStudioの便利なImport Dataset機能を使ってcsvファイルを読み込んでみる。 詳しく知りたい方は↓を読むとしゅごいって思うに違いない。

qiita.com

下の図にあるように,Import DatasetのFrom CSVの部分をクリックすればよい

f:id:izunyan:20170205002020j:plain


csvファイルを開こうとしてみると,↓のような画面になる

f:id:izunyan:20170205002340j:plain


name変数の日本語が入ってるはずの列が意味不明な文字列に!

これは,実際にRの表示上もこのままなので,解析の際にとても困る。 じゃあどうしたらよいか,ということで色々ネット上で情報を探し見たら,解決法が見つかった。

demacassette2.hateblo.jp

つまり,Code Preview:の所に出てきたコードで,エンコードcp932に変更すればよい。 下図では,とりあえずEncodingをDefaultからUTF-8に変更し,コードプレビューに表示させ,そこに手動でcp932に置き換えてみている。

f:id:izunyan:20170205002607j:plain

下記のように,ファイルの場所の指定部分に加え,locale = locale(encoding = "cp932")という部分が追加されている。

aqours <- read_csv("ここにフォルダまでのパス/aqours.csv", 
    locale = locale(encoding = "cp932"))
aqours
# A tibble: 9 × 6
        name grade height     B     W     H
       <chr> <int>  <int> <int> <int> <int>
1   高海千歌     2    157    82    59    83
2   桜内梨子     2    160    80    58    82
3   松浦果南     3    162    83    58    84
4 黒澤ダイヤ     3    162    80    57    80
5     渡辺曜     2    157    82    57    81
6   津島善子     1    156    79    58    80
7 国木田花丸     1    152    83    57    83
8   小原鞠莉     3    163    87    60    84
9 黒澤ルビィ     1    154    76    56    79

この通り,ちゃんと読み込んで日本語を表示できた!

cp932というのは,Shift_JISの拡張版みたいなやつっぽい。だから,読み込むcsvファイルの文字エンコードShift_JISであることが前提になっているが,Windowsを使っていると多くの場合そうなっているのではないかと思う。

cp932はR Scriptを保存するときに出てくる,下の画面にも出てたことに気がついた。

f:id:izunyan:20170205010301j:plain

意味不明な記号数字・・・と思ってたデフォルトの指定はこのことだったのか!

ともあれ,これでやっとAqorsメンバーの名前が正常に読み込めた。