目安となるスキルレベル
TDBの集中講義では、Rに標準搭載されている関数を中心に前処理を行ってきましたが、ここではパッケージの活用による、さらなる効率化・汎用化を目指します。
Rの強み
Python版も執筆中
初級編
中級編
上級
導入編では、初級編・中級編を学ぶ上で必要となる前提知識について説明します
現代でRを使うなら必需品!!
tidyverse公式HP(https://www.tidyverse.org/)
などなど、さまざまな理由があります。
tidyverseで扱うdata.frame
tibbleではデータの次元数とカラム型が表示され、表示件数が10行までになります。見やすいです!
x
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
コーディングの強力な味方
これらのメリットを、例を通して確認してみましょう。
たとえば、次のような処理をすることを考えます。
例:dat_tbの先頭5行の合計値(15)を算出する
# A tibble: 5 x 1
x
<int>
1 1
2 2
3 3
4 4
5 5
パイプを使わない方法
パイプを使う方法
[1] 15
パイプのコツ
[1] 15
パイプを使わないと…
[1] 15
パイプ演算子のショートカットコマンド
関数 | 操作 |
---|---|
bind_rows(cols) | データを縦(横)結合 |
distinct | データの重複を消去 |
select | データの変数選択 |
left_join | データのjoin |
filter | データの条件抽出 |
arrange | データのソート |
mutate | データのカラム定義 |
全てはプロジェクトから始まる…
では、実際にRstudioでProjectを作成してみましょう。
今回はプロジェクトフォルダとProjectファイルを同時に作成します。
①から④の手順に従ってR Projectを作成します。
R projectが作成されると次のような画面が開きます。
ExplorerからR projectを起動することもできます。
R projectでのgitによるバージョン管理は、付録で説明する予定です。
サルでもわかる構成を!
青字はフォルダです
フォルダ | 中身 |
---|---|
. | ルートディレクトリ(demo_dir) |
code | .Rファイルなどの研磨スクリプト |
input | 生データやマスタデータ |
output | 中間ファイルや研磨後データ |
plot | データの可視化をしたプロット |
ファイル | 内容 |
---|---|
README.txt | 最初に読んでほしい文書。構成や備忘録などを記述 |
demo_dir.Rproj | プロジェクトファイル |
上記3点目に関して、次のスライドのような事例を見てみましょう。
folder_A
folder_B
両フォルダとも中身は同じですがフォルダ名が少し異なります。 フォルダ名は統一されている方が共有がしやすいです。 本資料ではfolder_Aのような構成で進めます。
pathの悩みから解放されるために
はじめにpathの悩み事例を紹介し、
次に視覚的にそれを説明し、
最後にhere関数の使用方法を説明します。
よくある悩みとして、以下の3つのような事例があります。
このような場合、プロジェクトを共有した際にプログラムのpathを書き換える必要が生じます。
hereを使えば、先ほどのような悩みはすべて解消します。
C:/Users/Suzuki/Desktop/Project_A/input/data.csv
変更前 C:/Users/Suzuki/Desktop/Project_A/input/data.csv
変更後 /Users/Tanaka/Documents/Project_A/input/data.csv
here() starts at C:/Users/ユーザー名/Desktop/Project_A
C:/Users/ユーザー名/Desktop/Project_A/input/data.csv
"C:/Users/ユーザー名/Desktop/Project_A/input/data.csv"
# A tibble: 3 x 3
`1` 売上 `売上(千円)`
<int> <int> <int>
1 1 4 7
2 2 5 8
3 3 6 9
例)col_3に、(col_1)の値でなく文字列“(col_1)”が代入された
導入編は以上になります。