# これは
mean(students$score)[1] 80.3
# これと同じ
students$score |> mean()[1] 80.3
tidyverseは、データサイエンスのためのRパッケージ集です。一貫した文法でデータ操作ができます。
パイプ演算子 |> は、左側の結果を右側の関数の第1引数に渡します。
複数の操作を連続して行うとき、パイプを使うと読みやすくなります。
条件に合う行だけを取り出します。
# A tibble: 5 × 5
id name grade score group
<int> <chr> <dbl> <dbl> <chr>
1 2 鈴木 2 82 B
2 3 佐藤 4 91 A
3 6 渡辺 4 88 B
4 8 小林 2 95 B
5 9 加藤 4 83 A
必要な列だけを取り出します。
# A tibble: 10 × 2
name score
<chr> <dbl>
1 田中 78
2 鈴木 82
3 佐藤 91
4 山田 65
5 伊藤 74
6 渡辺 88
7 中村 70
8 小林 95
9 加藤 83
10 吉田 77
計算結果から新しい列を追加します。
# A tibble: 10 × 7
id name grade score group score_centered passed
<int> <chr> <dbl> <dbl> <chr> <dbl> <lgl>
1 1 田中 3 78 A -2.30 TRUE
2 2 鈴木 2 82 B 1.70 TRUE
3 3 佐藤 4 91 A 10.7 TRUE
4 4 山田 3 65 B -15.3 FALSE
5 5 伊藤 2 74 A -6.3 TRUE
6 6 渡辺 4 88 B 7.7 TRUE
7 7 中村 3 70 A -10.3 TRUE
8 8 小林 2 95 B 14.7 TRUE
9 9 加藤 4 83 A 2.70 TRUE
10 10 吉田 3 77 B -3.30 TRUE
指定した列で並べ替えます。
# A tibble: 10 × 5
id name grade score group
<int> <chr> <dbl> <dbl> <chr>
1 4 山田 3 65 B
2 7 中村 3 70 A
3 5 伊藤 2 74 A
4 10 吉田 3 77 B
5 1 田中 3 78 A
6 2 鈴木 2 82 B
7 9 加藤 4 83 A
8 6 渡辺 4 88 B
9 3 佐藤 4 91 A
10 8 小林 2 95 B
データを集計します。
グループごとに集計できます。
# A tibble: 2 × 3
group mean_score n
<chr> <dbl> <int>
1 A 79.2 5
2 B 81.4 5
パイプで複数の操作をつなげます。
複数の列を1つの列にまとめます(ワイド形式 → ロング形式)。
# A tibble: 2 × 4
name math english science
<chr> <dbl> <dbl> <dbl>
1 田中 80 70 90
2 鈴木 75 85 80
# A tibble: 6 × 3
name subject score
<chr> <chr> <dbl>
1 田中 math 80
2 田中 english 70
3 田中 science 90
4 鈴木 math 75
5 鈴木 english 85
6 鈴木 science 80
1つの列を複数の列に展開します(ロング形式 → ワイド形式)。
# A tibble: 6 × 3
name subject score
<chr> <chr> <dbl>
1 田中 math 80
2 田中 english 70
3 田中 science 90
4 鈴木 math 75
5 鈴木 english 85
6 鈴木 science 80
# A tibble: 2 × 4
name math english science
<chr> <dbl> <dbl> <dbl>
1 田中 80 70 90
2 鈴木 75 85 80
students データを使って以下を行ってください:
# A tibble: 7 × 5
id name grade score group
<int> <chr> <dbl> <dbl> <chr>
1 8 小林 2 95 B
2 3 佐藤 4 91 A
3 6 渡辺 4 88 B
4 9 加藤 4 83 A
5 2 鈴木 2 82 B
6 1 田中 3 78 A
7 10 吉田 3 77 B
# A tibble: 3 × 2
grade mean_score
<dbl> <dbl>
1 2 83.7
2 3 72.5
3 4 87.3
# A tibble: 10 × 6
id name grade score group deviation
<int> <chr> <dbl> <dbl> <chr> <dbl>
1 1 田中 3 78 A 47.6
2 2 鈴木 2 82 B 51.8
3 3 佐藤 4 91 A 61.4
4 4 山田 3 65 B 33.7
5 5 伊藤 2 74 A 43.3
6 6 渡辺 4 88 B 58.2
7 7 中村 3 70 A 39.0
8 8 小林 2 95 B 65.6
9 9 加藤 4 83 A 52.9
10 10 吉田 3 77 B 46.5