Rパッケージ開発入門

―テスト、文書化、コード共有の手法を学ぶ

[cover photo]
TOPICS
Data Science , Database , R
発行年月日
PRINT LENGTH
232
ISBN
978-4-87311-759-1
原書
R Packages
FORMAT
PDF
Ebook
3,080円
Ebookを購入する

ggplot2、plyr、tidyrといったRを代表するパッケージやRStudioの開発で知られる「Rの神様」ハドリー・ウィッカムがRパッケージの作成方法を解説した書籍です。Rパッケージ作成を通じて、無駄のない開発や生産性の向上だけでなく、Rの哲学や作法など、Rプログラミングに関するさまざまなことを学ぶことができます。実際にパッケージ開発には関わらないような一般のユーザにとっても、再利用しやすく、保守しやすいスクリプトを書くことができ、効率的なRプログラミングが可能となります。さらに効率化を図りたいデータサイエンティスト、スキルを磨いて次のステップに進みたい開発者に最適の一冊です。

目次

目次


訳者まえがき
まえがき

I部 第一歩
1章 はじめに
    1.1 哲学
    1.2 学習開始
    1.3 規約
    1.4 参考情報

2章 パッケージの構造
    2.1 パッケージに名前を付ける
        2.1.1 名前の要件
        2.1.2 名前を付ける方法
    2.2 パッケージを作成する
    2.3 RStudioプロジェクト
        2.3.1 RStudioプロジェクトファイルとは
    2.4 パッケージとは
        2.4.1 ソースパッケージ
        2.4.2 バンドルパッケージ
        2.4.3 バイナリパッケージ
        2.4.4 インストール済みのパッケージ
        2.4.5 インメモリパッケージ
    2.5 ライブラリとは

Ⅱ部	パッケージコンポーネント
3章 Rコード
    3.1 Rコードのワークフロー
    3.2 関数をまとめる
    3.3 コードスタイル
        3.3.1 オブジェクト名
        3.3.2 スペース
        3.3.3 中括弧
        3.3.4 行の長さ
        3.3.5 インデント
        3.3.6 割り当て
        3.3.7 コメントのガイドライン
    3.4 トップレベルのコード
        3.4.1 コードのロード
        3.4.2 Rの景観
        3.4.3 副作用が必要になるのはどのようなときか
        3.4.4 S4クラス、ジェネリック、メソッド
    3.5 CRANに関する補足

4章 パッケージのメタデータ
    4.1 依存関係:パッケージには何が必要か
        4.1.1 バージョン管理
        4.1.2 その他の依存関係
    4.2 TitleとDescription:パッケージは何をするのか
    4.3 作成者:開発したのは誰か
        4.3.1 CRANでは
    4.4 ライセンス:パッケージを使えるのは誰か
        4.4.1 CRANでは
    4.5 バージョン
    4.6 その他のコンポーネント

5章 オブジェクトのドキュメント
    5.1 ドキュメントのワークフロー
    5.2 その他のドキュメントのワークフロー
    5.3 roxygenコメント
    5.4 関数のドキュメント
    5.5 データセットのドキュメント
    5.6 パッケージのドキュメント
    5.7 クラス、ジェネリック、メソッドのドキュメント
        5.7.1 S3
        5.7.2 S4
        5.7.3 RC
    5.8 特殊文字
    5.9 Do Repeat Yourself
        5.9.1 パラメータを他の関数から継承する
        5.9.2 複数の関数を同じファイルにドキュメント化する
    5.10 テキスト書式参照表
        5.10.1 文字の書式
        5.10.2 リンク
        5.10.3 リスト
        5.10.4 数式
        5.10.5 表

6章 vignette:長文形式のドキュメント
    6.1 vignetteワークフロー
    6.2 メタデータ
    6.3 Markdown
        6.3.1 セクション
        6.3.2 リスト
        6.3.3 インライン書式
        6.3.4 表
        6.3.5 コード
    6.4 knitr
        6.4.1 オプション
    6.5 開発サイクル
    6.6 vignetteを書くためのアドバイス
        6.6.1 統合
    6.7 CRANに関する補足
    6.8 次に行くべき場所

7章 テスト
    7.1 テストのワークフロー
    7.2 テストの構造
        7.2.1 期待値の検証
    7.3 テストを書く
        7.3.1 何をテストするか
        7.3.2 テストをスキップする
        7.3.3 独自のテストツールの作成
    7.4 テストファイル
    7.5 CRANに関する補足

8章 名前空間
    8.1 動機付け
    8.2 検索パス
    8.3 名前空間
    8.4 ワークフロー
    8.5 エクスポート
        8.5.1 S3
        8.5.2 S4
        8.5.3 RC
        8.5.4 データ
    8.6 インポート
        8.6.1 R関数
        8.6.2 S3
        8.6.3 S4
        8.6.4 コンパイル済みの関数

9章 外部データ
    9.1 エクスポートされたデータ
        9.1.1 データセットのドキュメント
    9.2 内部データ
    9.3 生データ
    9.4 その他のデータ
    9.5 CRANに関する補足

10章 コンパイル済みのコード
    10.1 C++
        10.1.1 ワークフロー
        10.1.2 ドキュメント
        10.1.3 C++コードのエクスポート
        10.1.4 C++コードのインポート
        10.1.5 ベストプラクティス
    10.2 C
        10.2.1 .Call()入門
        10.2.2 .C()入門
        10.2.3 ワークフロー
        10.2.4 Cコードのエクスポート
        10.2.5 Cコードのインポート
        10.2.6 ベストプラクティス
    10.3 コンパイル済みのコードのデバッグ
    10.4 Makefile
    10.5 R以外の言語
    10.6 ライセンス
    10.7 開発ワークフロー
    10.8 CRANに関する課題

11章 インストール済みのファイル
    11.1 パッケージの引用
    11.2 R以外の言語

12章 その他のコンポーネント
    12.1 デモ

Ⅲ部	ベストプラクティス
13章 GitとGitHub
    13.1 RStudioとGit、そしてGitHub
    13.2 初期設定
    13.3 ローカルのGitリポジトリの作成
    13.4 変更点を見る
    13.5 変更を記録する
    13.6 コミットのベストプラクティス
    13.7 ファイルを無視する
    13.8 間違いを取り消す
    13.9 GitHubと同期する
    13.10 GitHubを使うメリット
    13.11 他者と作業する
    13.12 issue
    13.13 ブランチ
    13.14 pull requestを作成する
    13.15 他のリポジトリにpull requestを送る
    13.16 pull requestをレビューして承認する
    13.17 詳細を学ぶ

14章 自動チェック
    14.1 チェックのワークフロー
    14.2 チェック
        14.2.1 メタデータのチェック
        14.2.2 パッケージ構造
        14.2.3 DESCRIPTION
        14.2.4 名前空間
        14.2.5 Rコード
        14.2.6 データ
        14.2.7 ドキュメント
        14.2.8 デモ
        14.2.9 コンパイル済みのコード
        14.2.10 テスト
        14.2.11 vignette
    14.3 コミットごとにTravisでチェックを行う
        14.3.1 基本設定
        14.3.2 その他の用途

15章 パッケージのリリース
    15.1 バージョン番号
    15.2 後方互換性
    15.3 投稿プロセス
        15.3.1 テスト環境
        15.3.2 チェック結果
        15.3.3 逆方向の依存関係
    15.4 CRANポリシー
    15.5 重要なファイル
        15.5.1 README.md
        15.5.2 README.Rmd
        15.5.3 NEWS.md
    15.6 リリース
        15.6.1 失敗したときは
        15.6.2 バイナリビルド
    15.7 次のバージョンの準備
    15.8 パッケージの公開
    15.9 お疲れさまでした

索引