はじめに
データ分析の書籍を読んでいるとRで書かれていて解読に困ったことはありませんか。
本コンテンツでは、多くの書籍で使われているtidyverseやggplot2を主に取り扱っています。
このtidyverseやggplot2は、データを加工・可視化する際に処理を順番に記載する直感的な記述法であり、データ分析の非常に強力な手助けになることでしょう。
なお、このコンテンツはPython初学者のためのPandas100本ノックの作成者であるクニえもんさんの承諾の元、似た形式で作成しております。pythonでのデータ分析に興味のある方はこちらも是非ご覧になってください。
tidyverse100本ノックの概要
・Rファイルに記載された、tidyverseやggplot2に関する設問100問を解いていきます
・「問題のみ版」「問題+解答・解説版」の2種類を用意しています。
問題内容
No. | 分類 | テーマ |
---|---|---|
1 | 基礎 | csvファイルの読み込み |
2 | 基礎 | xlsxファイルの読み込み |
3 | 基礎 | dfのコピー |
4 | 基礎 | dfの確認 |
5 | 基礎 | 基本データ型/データ構造型の確認 |
6 | 基礎 | データ構造型の確認 |
7 | 基礎 | データ型の変換 |
8 | 基礎 | dfサイズの確認 |
9 | 基礎 | カラム名の一覧表示 |
10 | 基礎 | ベクトルから不要な要素の削除 |
11 | 基礎 | 変数の一括削除 |
12 | 基礎 | 関数の詳細確認 |
13 | 基礎 | 関数を定義する |
14 | 基礎 | data.frameの生成 |
15 | 基礎 | ショートカット |
16 | 抽出 | 列の抽出 |
17 | 抽出 | 列の抽出(*selectは使わない) |
18 | 抽出 | 指定列以外の抽出 |
19 | 抽出 | 複数列の抽出 |
20 | 抽出 | 条件を満たすデータの抽出 |
21 | 抽出 | 条件を満たさないデータの抽出 |
22 | 抽出 | 複数条件をいずれも満たすデータの抽出 |
23 | 抽出 | 複数条件のいずれかを満たすデータの抽出 |
24 | 抽出 | 複数条件のいずれも満たさないデータの抽出 |
25 | 抽出 | 特定のカラムに任意の文字列が含まれるデータの抽出 |
26 | 抽出 | カラム名に任意の文字列が含まれるデータの抽出(ヘルパ関数) |
27 | 抽出 | 特定の文字列が含まれるデータの抽出 |
28 | 抽出 | 上位n・下位nの抽出 |
29 | 抽出 | 特定のデータ型の列の抽出 |
30 | 加工 | 不要列の削除(selectを用いた削除) |
31 | 加工 | 不要列の削除(NULLを用いた削除) |
32 | 加工 | dfの要素の上書き |
33 | 加工 | カラムの追加 |
34 | 加工 | 任意列の値を条件とした新カラムの追加 |
35 | 加工 | 任意の列の値を置換する |
36 | 加工 | 場合分けした値の置換 |
37 | 加工 | 丸め表示 |
38 | 加工 | カラム名の変更 |
39 | 加工 | 並び替え |
40 | 加工 | 転置 |
41 | 重複処理 | ユニークな要素の確認 |
42 | 重複処理 | ユニークな要素数の確認 |
43 | 重複処理 | カラム別のユニークな要素数の確認 |
44 | 重複処理 | ユニークな要素とその出現回数の確認 |
45 | 重複処理 | 重複の削除 |
46 | 欠損値処理 | NAの個数の確認 {base機能} |
47 | 欠損値処理 | NAの個数の確認 {library(skim)} |
48 | 欠損値処理 | NAに置換する |
49 | 欠損値処理 | 欠損値の補完(文字列) |
50 | 欠損値処理 | 欠損値の補完(数値) - グループ平均値代入法 |
51 | 欠損値処理 | 欠損値の補完(直前の値を採用) - LOCF法 |
52 | 欠損値処理 | 欠損値を含むデータの削除 - リストワイズ法 |
53 | 文字列の操作 | 大文字に変換 |
54 | 文字列の操作 | 文字列の置換 |
55 | 文字列の操作 | 文字列の一部削除 |
56 | 文字列の操作 | 文字列の結合 |
57 | マージと連結 | 左結合 |
58 | マージと連結 | 内部結合 |
59 | マージと連結 | 下に結合 |
60 | マージと連結 | 右に結合 |
61 | ラベリング | ラベルエンコーディング |
62 | ラベリング | One-hotエンコーディング |
63 | ラベリング | 正規化 |
64 | ラベリング | min-MAXスケーリング(0-1) |
65 | 集計・統計 | 要約統計量の確認 |
66 | 集計・統計 | 要約統計量の確認 ※library(skim)を使用 |
67 | 集計・統計 | group_by(合計) |
68 | 集計・統計 | 平均値 |
69 | 集計・統計 | 中央値 |
70 | 集計・統計 | 最大値、最小値 |
71 | 集計・統計 | 標準偏差、分散 |
72 | 集計・統計 | 相関係数 |
73 | 集計・統計 | パーセンタイル |
74 | 集計・統計 | 要素別の頻度カウント |
75 | 集計・統計 | 最頻値 |
76 | 集計・統計 | データの縦持ち(tidy)⇒横持ち |
77 | 集計・統計 | tidy data形式への変換(横持ち⇒縦持ち) |
78 | 集計・統計 | window関数- row_number |
79 | 集計・統計 | window関数- lag |
80 | 可視化 | ヒストグラム |
81 | 可視化 | 密度推定曲線 |
82 | 可視化 | 複数のヒストグラム |
83 | 可視化 | 棒グラフ |
84 | 可視化 | 棒グラフの並列表示 |
85 | 可視化 | 積み上げ棒グラフ(対 集計済データ) |
86 | 可視化 | 横棒グラフ |
87 | 可視化 | 横棒グラフ |
88 | 可視化 | 散布図の一括表示 |
89 | 可視化 | 散布図 |
90 | 可視化 | ヴァイオリンプロット |
91 | 可視化 | 棒グラフ+散布図 |
92 | 可視化 | 散布図のラベリング |
93 | 可視化 | 装飾 |
94 | 可視化 | 相関ヒートマップ |
95 | 可視化 | 箱ひげ図 |
96 | 可視化 | 補助線の追加 |
97 | 可視化 | 回帰直線の追加(特定の範囲の切り出し) |
98 | 可視化 | 回帰直線の追加(特定の範囲の拡大表示) |
99 | 可視化 | 複数の回帰直線を追加 |
100 | 可視化 | ファセット機能 |
利用方法
RStudioをまだインストールしていない方は、以下の記事を参考に、まずRStudioを自身のPCにインストールして下さい。
windowsの方 - RStudioのインストール
Macの方 - MacにRとR Studioをインストール
ディレクトリ構成
tidyverse100.R
├ 「問題」「問題+解答・解説」のRファイルが格納
└ input/ … 問題で使用するデータセットが格納
※ZIPファイルから展開した後に、このディレクトリ構成は変えないで下さい(上手く動作しなくなります)。
※フォルダ名に日本語が含まれる場合、RStudioが起動しない場合があります。
詳しくはこちらの記事を参考ください。
ダウンロード
コンテンツはGitHubよりダウンロードできます。
その他
・個人・法人を問わず誰でも使用可能です。
・本コンテンツの再配布・改編はご遠慮ください。
・本コンテンツの内容に関して、予告なく変更・削除等が行われることがあります。
・本コンテンツに関するご意見、ご要望、誤り等ございましたらツイッターまたは本記事内のコメント欄までお気軽にご連絡ください。
・データサイエンス関連のツイートもたまにしているのでよければフォローお願いします。