-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.Rmd
173 lines (121 loc) · 9.15 KB
/
index.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
---
site: bookdown::bookdown_site
# title: "がんばらないデータ加工"
# subtitle: "Rによるくり返し作業入門 前編"
# author: "やわらかクジラ"
github-repo: izunyan/gisho12.git
cover-image: images/cover.png
documentclass: bxjsbook
classoption: xelatex,ja=standard, b5paper
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE,
dev = "cairo_pdf", dev.args = list(family = "ipaexg")) # pdfでggplot2の日本語出力に必要な設定→html不可?
# tibbleの表示行数指定
tibble_opt <- list(
"tibble.print_min" = 3, # 表示する行の数
"tibble.width" = 65 # 横の表示幅
)
options(tibble_opt)
```
# はじめに {-#hajimeni}
```{r cover, eval=FALSE, fig.align='center', include=FALSE, out.width='50%'}
# pdf作成時は不要
# knitr::include_graphics("images/cover.png")
```
<!-- * 本webサイトは,技術書典12にて頒布した[がんばらないデータ加工 Rによるくり返し作業入門 前編](https://techbookfest.org/product/5161487259664384?productVariantID=5672571053801472)のオンラインバージョン -->
<!-- * こちらは随時updateされていく予定 -->
## 技術書典12頒布版からの変更点 {-}
* R4.2対応
* パイプを演算子を`%>%`から`|>`に置き換え
* 軽微な追記
* 誤字・脱字・細かい表現を修正
## 概要 {-}
* 本書の目的
+ データ加工での面倒な作業をRとRStudioで手軽に実行できるようになるための基礎知識を紹介
* 本書の内容
+ Rのモダンな方法を使い,データ加工の過程(例:前処理、データクリーニング、データクレンジング、データラングリングなど)で用いる基本関数の紹介
+ 実際は核心の部分に入る前の準備段階までにとどまる。タイトルに「前編」とあるのはその理由による
+ 基本的にデータフレーム(\@ref(p-df)参照)の形になったきれいな構造を想定しているが,ここで解説した技術に熟達することで,その他のデータ形式や汚いデータ構造にも立ち向かえるようになる
* 執筆動機
+ 本書を書こうと思ったのは拙既刊書[『Rで読むExcelファイル』](https://techbookfest.org/product/4794168259903488?productVariantID=5913872206659584)と同じく,「RとRStudioを使いたい!と思う人がもっと増えればいいのに」という願いから
* 今後の展望
+ よりタイトルの内容に沿った次回作の「後編」(もしかしたら「中編」も)をお楽しみに!
* 本書の内容は、[githubレポジトリ](https://github.com/izunyan/gisho12)ですべて公開
## 本書の特徴 {-}
* タイトルの「がんばらない」とは,**単純作業のくり返しに無駄なエネルギーを注がなくてよいように**,なるべく人力に頼らないようにすること
* 扱う内容は自分が学び始めの時に教えてもらいたかったことが中心
* これまでの解説で不足していると考えられるポイント
+ 便利な関数や基本的な使い方の解説は多いが,データ加工の実務上知りたいコード例が豊富なわけではない
+ **同じ作業を大量の変数についてくり返し実行**したい時のやり方の解説は少ない
* 本書の強み
+ くり返し同じ作業する部分を効率化したコードを併せて解説する点
+ 自分の学習経験から,そのコード例が知りたかったんだ!という実用的な方法を整理
* まずモダンなRのデータ加工法での基本の書き方を解説した後に,**【効率化】**でより効率的にコードを書く解説を行う
* **【効率化】**のタグが本書では特に重要になる。手作業のくり返しをなるべく避けることが目指すべき点
* 冗長だが【別解】を示すことで様々な関数の働きを理解でき,手持ちの武器が増えデータ加工の幅が広がる
## 想定読者 {-}
* RとRStudioをダウンロードしてPCにインストールまでできることが最低条件
+ web上に様々な解説があり,あとは基本的にOKしていけばできるはず
+ 例えば公的には[総務省の資料](https://www.soumu.go.jp/ict_skill/)などがある^[総務省ホームページ「総務省 ICTスキル総合習得プログラム コース4
(オープンデータ・ビッグデータ利活用事例) 4-3 プログラミングによるビッグデータの分析(R)」(https://www.soumu.go.jp/ict_skill/)]
+ Windows10だとインストール時にうまくいかないことがあり,自分もくじけそうになったことがあったが,それは乗り越えてしまうと戻りたくないので今回は解説あきらめた
+ どうしてもインストールできなかったら,ブラウザから実行可能な[RStudio Cloud](https://rstudio.cloud/)を使って練習できる(ただし無料版は時間制限があるらしい)
* 初学者から始めてちょっと背伸びできるくらいまでが到達目標
## 各章の紹介 {-}
* まず\@ref(premise)章では、RとRStudioに初めて触れる方,初学者を対象とした前提知識を解説する。ゆくゆく楽をするためには避けて通れない知識なので,用語になじんでおきたい
* \@ref(select)章はデータの列(変数)^[\@ref(p-object)のオブジェクトに該当するものとは異なる]を選ぶ方法を解説する。データをコンパクトにしたり,後のデータ解析等で必要な変数を取得したりするなど,データ加工プロセス全体で必要な基本知識もあるので最初に学んでおきたい
* \@ref(rename)章はデータの列名(変数名)を変える方法について解説する。単純に見えるがデータ加工の際になくてはならない技術である。効率化させるためには初心者から少し脱する必要があり,奥が深い
* \@ref(filter)章はデータの行(ケースまたはオブザベーション)を選ぶ方法を解説する。データや加工した結果,分析した結果をコンパクトにするのに役立つ
* \@ref(mutate)章はデータに新しい列を追加する方法について解説する。例えば合計点の作成や,年齢層カテゴリや2区分変数(いわゆるダミー変数)の作成など,変数を計算して新しい変数を作る作業はよく発生する。効率化のために避けて通れない`across()`についてもここで解説する
* \@ref(summarise)章は要約値の計算について解説する。実務では大量の変数を一気に処理する必要がある場面が多いので,効率化を意識した説明を多く入れている
## 執筆環境 {-}
* 本書は[bookdown](https://bookdown.org/)にて執筆
* 表紙のタイトルは「あずきフォントB」v1.20を使用
### RおよびRStudio、パッケージのバージョン {-}
* Rのバージョン
```{r echo = FALSE}
library(tidyverse)
res_si <-
sessioninfo::session_info()
res_si$platform |>
stack() |>
tibble::as_tibble() |>
dplyr::relocate(ind) |>
dplyr::mutate(ind = as.character(ind)) |>
dplyr::filter(ind %in% c("version", "os", "system", "date", "rstudio")) |>
print(n = 10)
# |>
# # head(5) |>
# knitr::kable() |>
# kableExtra::kable_styling(position = "center")
res_si$packages |>
tibble::as_tibble() |>
dplyr::select(package, loadedversion) |>
dplyr::filter(package %in% c("bookdown", "tidyverse"))
# |>
# knitr::kable() |>
# kableExtra::kable_styling(position = "center")
```
* RStudioのバージョン
+ ‘2022.2.1.461’(手動で記入)
```{r eval=FALSE, include=FALSE}
rsinfo <-
rstudioapi::versionInfo()
rsinfo$version
rsinfo$release_name
```
## 注意事項など {-}
* 本書の内容はすべてwindows環境を想定
* この本に書いてある内容は、筆者が学習したことをまとめているものにすぎないため、正常な動作の保証はできない。使用する際は、自己責任で
<!-- ## ライセンス {-} -->
<!-- * 本webサイトは [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) -->
<!-- + 引用例:やわらかクジラ(2021)『がんばらないデータ加工 Rによるくり返し作業入門 前編』. (サークル名:ヤサイゼリー), オンライン版:https://izunyan.github.io/gisho12/ -->
<!-- + ただし,ライセンスの適用は本書での著作部分のみとなり,用いているデータやパッケージや画像などはそれぞれのライセンスに準じる -->
## 関連情報 {-#association}
* [『Rで読むExcelファイル』](https://techbookfest.org/product/4794168259903488?productVariantID=5913872206659584)
+ 技術書典9で頒布したRでのExcelおよびcsvファイル読み込み解説本
+ [githubレポジトリ](https://izunyan.github.io/excel_r/)
* [ggplot2の辞書](https://izunyan.github.io/practice_ggplot2/)
+ 視覚化のための`ggplot2`パッケージの辞書的メモ
<!-- ![](images/tweet.png) -->