書籍概要

Rでらくらくデータ分析入門
~効率的なデータ加工のための基礎知識~

著者
発売日
更新日

概要

ビジネスパーソンに向けた,脱Excel,プログラミングの入口につながるRでのデータ分析入門書!

日々の仕事の中で,こんな作業はありませんか?

  • 表データに決まった手順でフィルターをかけて,それをグラフにする
  • 複数のExcelファイルを1つのExcelファイルにまとめる
  • 定型のPowerPointを作成する

単純なデータの加工や集計はExcelで事足ります。ただ,複雑な処理や繰り返しの処理が必要となったときには,より高度な関数やマクロを使いこなす必要が出てきます。

本書はマクロを含め,プログラミングにまったくふれたことがない人を対象に書かれています。Rの本としては珍しく,数式も統計学も出てきません。文系出身の普通のビジネスパーソンでも,普段行っているデータの加工がより楽に,効率的にできるようになります。

Rは,統計処理に特化したプログラミング言語と言われています。1990年代に作られて以降,統計だけでなくさまざまなところで利用されています。
表形式のデータを自由自在に加工・集計できる機能も含まれており,プログラムを書いてデータを取り扱うことができるというその性質から,ルーチンワークやたくさんのデータを処理する際に使われてきました。その便利さは,Excelの比ではありません。

本書は,オンラインコースのUdemyでベストセラーとなっている著者の人気コース「医師が教えるR言語での医療データ分析入門」をベースとし,Excelでのデータ加工と集計に特化して作成されました。オンラインでのレクチャー同様,「語りかける」ように解説します。

著者は企業の産業医をするかたわら,データの処理や分析を行ってきました。その中で,Excelより効率的にデータの加工・分析ができる,Rと出会いました。Rを普及させたい! そんな思いで本書を執筆しました。
Excelより効率的にデータを加工して,周りと差をつけたい。プログラミングに興味あるし,実務にも生かしてみたい。そんなあなたに,本書は最適な導入となるはずです。

こんな方におすすめ

  • Excelよりもっと効率的な環境でデータ分析したいビジネスパーソン

目次

  • はじめに
  • 0.1 本書の目的
  • 0.2 本書が扱う範囲
  • 0.3 本書の対象読者
  • 0.4 再現可能なレポートとは
  • 0.5 本書の特長
  • 0.6 配布データのダウンロード
  • 0.7 Rを気軽に学んでいこう

第1章 RとRStudioの基礎

  • 1.1 RとRStudioとは
  • 1.2 Rをインストールしよう
  • 1.3 RStudioをインストールしよう
  • 1.4 RStudioの画面を見てみよう
  • 1.5 Rを使って計算しよう
  • 1.6 画面同士を連携させよう
  • 1.7 RStudioでファイルを管理しよう

第2章 Rの機能

  • 2.1 Rのスクリプトを書いてみよう
  • 2.2 型を理解しよう
  • 2.3 変数を用意しよう
  • 2.4 変数のルールや操作方法を確認しよう
  • 2.5 オブジェクトとは
  • 2.6 データの帯(ベクトル)について理解しよう
  • 2.7 ベクトルの型を変換しよう
  • 2.8 ベクトルとベクトルで計算しよう
  • 2.9 データフレームで表を作ろう
  • 2.10 関数を理解しよう
  • 2.11 パッケージを読み込もう
  • 2.12 パッケージを読み込まずに関数を利用しよう

第3章 Excelファイルのインポート

  • 3.1 インポートとは
  • 3.2 パスとは
  • 3.3 ワーキングディレクトリを確認・設定しよう
  • 3.4 パスがなぜ重要なのか理解しよう
  • 3.5 Excelファイルを実際に読み込もう
  • 3.6 tibbleについて理解しよう
  • 3.7 読み込むファイルの型を推定しよう
    • 3.7.1 表の一部を抜き出そう
  • 3.8 Excelファイル以外のデータを取り込もう
    • 3.8.1 テキスト形式のデータの取り込み
    • 3.8.2 統計ソフトのデータの読み込み

第4章 データ加工に適したTidyデータ

  • 4.1 Tidy(タイディー)データとは
  • 4.2 Tidyでないデータとは
  • 4.3 複数の変数が列名となっているデータをTidyにしよう
  • 4.4 行と列に変数が含まれているデータをTidyにしよう
  • 4.5 複数の項目がテーブルに含まれるデータをTidyにしよう
  • 4.6 Tidyデータがまだわからないという人へ

第5章 データ加工に必要なパッケージ群「tidyverse」

  • 5.1 tidyverseとは
  • 5.2 本書で紹介する関数一覧

第6章 列の加工

  • 6.1 関数と関数をつなごう
  • 6.2 列を追加しよう
  • 6.3 列名を変更しよう
  • 6.4 列を選択しよう

第7章 行の加工

  • 7.1 行を並び替えよう
  • 7.2 ロジカル型を理解しよう
    • 7.2.1 ロジカル型とは
    • 7.2.2 ロジカル型で印をつけよう
    • 7.2.3 印をつけたものを取り出そう
    • 7.2.4 ロジカル型のTRUE,FALSEを!でひっくり返そう
  • 7.3 行を絞り込もう

第8章 文字を自由に操る正規表現

  • 8.1 正規表現とは
  • 8.2 いらない文字を除去しよう
  • 8.3 探している文字が含まれているか判定しよう
  • 8.4 探している文字を抜き出そう
  • 8.5 目的の文字を置き換えよう

第9章 カテゴリカルデータのための因子型

  • 9.1 アンケートのデータを集計しよう
  • 9.2 架空のアンケートデータを作成しよう
    • 9.2.1 ランダムな数字を生成しよう
    • 9.2.2 くじ引きをやってみよう
    • 9.2.3 ランダムな表データを作成しよう
  • 9.3 因子型とは
  • 9.4 因子型の列を作成しよう
  • 9.5 変数を利用した因子型の設定

第10章 条件別による列の加工

  • 10.1 割引クーポンを使ってアイスクリームの値段を計算しよう①
  • 10.2 別の列の値に応じて列を加工する方法を確認しよう
  • 10.3 割引クーポンを使ってアイスクリームの値段を計算しよう②
  • 10.4 もっと複雑な条件に応じて列を加工しよう

第11章 特殊な加工に必要なtidyrパッケージ

  • 11.1 複数の列を1つにまとめよう
  • 11.2 複数の列に分割しよう
    • 11.2.1 列を分割しよう
    • 11.2.2 要素を抽出して列を作ろう
  • 11.3 欠損値を好きな値に変換しよう
    • 11.3.1 欠損値を埋めよう
    • 11.3.2 データをリストとして保持しよう
  • 11.4 欠損値を埋めよう
  • 11.5 欠損値を好きな文字に置き換えよう

第12章 煩雑なデータをTidyに~縦データと横データの変換~

  • 12.1 縦と横のデータを理解しよう
  • 12.2 横のデータを縦のデータに変換しよう
  • 12.3 縦のデータを横のデータに変換しよう
  • 12.4 横から縦への変換の応用~列データを変換しながら複数の列に分割しよう〜
  • 12.5 縦から横への変換の応用~欠損しているデータを埋めよう~
  • 12.6 自由にデータを変換しよう

第13章 マスタデータと戦おう

  • 13.1 リレーショナルデータベースとは
  • 13.2 複数の表を結合させよう
  • 13.3 名前が違う列同士を結合しよう
  • 13.4 いろいろな結合方法を知ろう
  • 13.5 表を結合してデータを抽出しよう

第14章 単純な集計

  • 14.1 平均・最小・最大を集計しよう
  • 14.2 表を集計しよう
  • 14.3 文字型(因子型)を集計しよう

第15章 集団の集計

  • 15.1 表を1つの変数で分割して集計しよう
  • 15.2 表を2つの変数で分割して集計しよう
  • 15.3 表が何行か調べよう
  • 15.4 行の前後の値で比較しよう
  • 15.5 売上データの店舗別・月別変化を調べよう

第16章 日付・時刻データ

  • 16.1 日付と時刻をRで表現しよう
  • 16.2 文字や数字を日付型・日付時刻型に変換しよう
    • 16.2.1 文字の日付型・日付時刻型への変換の応用
    • 16.2.2 数字の日付型・日付時刻型への変換の応用
  • 16.3 地域ごとの時差を表現しよう
  • 16.4 日付と時刻を計算しよう
    • 16.4.1 引き算での計算
    • 16.4.2 物理的な時間の経過を表そう
    • 16.4.3 カレンダー上の時間の経過を表そう
    • 16.4.4 「時間の帯」同士の重なりの有無を調べよう
  • 16.5 時間を集計しよう

第17章 Tidyデータの作成

  • 17.1 例1:出勤,退勤時刻に関するデータをTidyにしよう
    • 17.1.1 出勤,退勤時刻データの加工1
    • 17.1.2 pivot_wider()とリストコラム
    • 17.1.3 出勤,退勤時刻データの加工2
  • 17.2 例2:人気ランキングと価格の表をTidyにしよう
  • 17.3 例3:複数の販売個数データをTidyにしよう
    • 17.3.1 ファイルを処理しよう
    • 17.3.2 関数を作ろう
    • 17.3.3 ファイルを処理する関数を作成しよう

第18章 データの保存

  • 18.1 状況に応じたデータの保存形式を考えよう
  • 18.2 表データをファイルとして保存しよう
    • 18.2.1 表データをCSVファイルで保存しよう
    • 18.2.2 表データをExcelファイルで保存しよう
  • 18.3 Rのオブジェクトを.rds形式で保存しよう
  • 18.4 Rのオブジェクトを.RData形式で保存しよう

第19章 レポートの出力

  • 19.1 R Markdownでレポート作成しよう
    • 19.1.1 R MarkdownからWordファイルを生成しよう
    • 19.1.2 Markdownとは
    • 19.1.3 R Markdownとは
  • 19.2 Rでグラフを書こう
  • 19.3 kable関数でキレイな表を出力しよう
  • 19.4 レポートを実際に出力しよう
  • おわりに
  • 結語と謝辞

サポート

ダウンロード

サンプルコード・データについて

(2022年2月4日更新)

サンプルコード・データは下記のWebサイトからダウンロードできます。

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2022年2月18日最終更新)

P.33 26行目

v + v7x
v + v7

(以下2022年2月4日更新)

P.125 27行目

表で行を抽出するには[<ロジカルベクトル>,]
表で行を抽出するにはhyou[ロジカルベクトル,]

「ロジカルベクトル」前後の「<」「>」は不要です。

P.151 12行目

sampl()
sample()

P.164 1行目

level引数
levels引数

P.165 9行目

dat[c(<行番号>),]
dat[c(行番号),]

P.165 29行目

arange()
arrange()

P.285 19行目

mak_date
make_date

P.292 4行目

start
start

商品一覧