ggplot2、plyr、tidyrといったRを代表するパッケージやRStudioの開発で知られる「Rの神様」ハドリー・ウィッカムがRパッケージの作成方法を解説した書籍です。Rパッケージ作成を通じて、無駄のない開発や生産性の向上だけでなく、Rの哲学や作法など、Rプログラミングに関するさまざまなことを学ぶことができます。実際にパッケージ開発には関わらないような一般のユーザにとっても、再利用しやすく、保守しやすいスクリプトを書くことができ、効率的なRプログラミングが可能となります。さらに効率化を図りたいデータサイエンティスト、スキルを磨いて次のステップに進みたい開発者に最適の一冊です。
Rパッケージ開発入門
―テスト、文書化、コード共有の手法を学ぶ
Hadley Wickham 著、瀬戸山 雅人、石井 弓美子、古畠 敦 訳
- TOPICS
- Data Science , Database , R
- 発行年月日
- 2016年02月
- PRINT LENGTH
- 232
- ISBN
- 978-4-87311-759-1
- 原書
- R Packages
- FORMAT
目次
目次
訳者まえがき
まえがき
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 お疲れさまでした
索引