数理統計やプログラムは出来る人でR言語は初心者という人が上級者になるための著作
Rという言語はFunctionalプログラミングが基本ではあるもののObject Orientedプログラミングもできる、という一風変わった言語である。
ただ基本がFunctionalであるため、データはImmutableなのである。Object OrientedのObjectはステートがMutableでないとまともなプログラムは作れない。具体的にどうやるのかが分かりたくて調査したところThomas Mailundという人が一連の著作でR入門からObject Oriented, Functional, Metaプログラミングなどについて解説してくれているのを見つけた。出版社はいずれもAPress。
同じ人が書いているので説明に矛盾がないと思われ、安心できる。
ISBNの若い順に概略目次と共に記す。
- 入門書
Beginning Data Science in R: Data Analysis, Visualization, and Modelling for the Data Scientist, 2017
Chapter 1-7でデータサイエンスの概論をRStudioを使ってハンズオン形式で解説。Chapter 8以降でより高度なRの使い方、実務で必要になるVersion Controlやテストなどについて記載。ここもハンズオン形式。これだけ出来れば普通のRを使うデータサイエンスプロジェクトに入っていくのに不自由はしないと思われる。
Introduction xxiii
Chapter 1: Introduction to R Programming 1
Chapter 2: Reproducible Analysis 29
Chapter 3: Data Manipulation 45
Chapter 4: Visualizing Data 75
Chapter 5: Working with Large Datasets 113
Chapter 6: Supervised Learning 125
Chapter 7: Unsupervised Learning 169
Chapter 8: More R Programming 205
Chapter 9: Advanced R Programming 233
Chapter 10: Object Oriented Programming 257
Chapter 11: Building an R Package 269
Chapter 12: Testing and Package Checking 281
Chapter 13: Version Control 287
Chapter 14: Profiling and Optimizing 303
- Functionalプログラミング
Functional Programming in R: Advanced Statistical Programming for Data Science, Analysis and Finance, 2017
各章でRの本質的な所であるFunctionalプログラミングについて詳述。
Introduction xv
Chapter 1: Functions in R 1
Chapter 2: Pure Functional Programming 25
Chapter 3: Scope and Closures 43
Chapter 4: Higher-Order Functions 63
Chapter 5: Filter, Map, and Reduce 77
Chapter 6: Point-Free Programming 95
Afterword 101
- Metaプログラミング
Metaprogramming in R: Advanced Statistical Programming for Data Science, Analysis and Finance, 2017
最初にFunctionの復習をしてからFunctionalプログラミングをさらに進めたMetaプログラミングを解説。
Introduction xi
Chapter 1: Anatomy of a Function 1
Chapter 2: Inside a Function Call 17
Chapter 3: Expressions and Environments 35
Chapter 4: Manipulating Expressions 57
Chapter 5: Working with Substitutions 77
Afterword 99
- Object Orientedプログラミング
Advanced Object-Oriented Programming in R: Statistical Programming for Data Science, Analysis and Finance, 2017
必ずしもFunctionalプログラミングの知識は要らないと書かれている。Object Orientedプログラミングについて詳述すると同時にS3などのオブジェクトについてかなり詳しい説明がある。
Introduction xiii
Chapter 1: Classes and Generic Functions 1
Chapter 2: Class Hierarchies 21
Chapter 3: Implementation Reuse 35
Chapter 4: Statistical Models 43
Chapter 5: Operator Overloading 61
Chapter 6: S4 Classes 73
Chapter 7: R6 Classes 91
Chapter 8: Conclusions 107
- Functionalデータ構造
Functional Data Structures in R: Advanced Statistical Programming in R
関数型「データ構造」についての著作。パフォーマンスはやや劣るがメンテナンス性は上がるらしい。
Chapter 1: Introduction 1
Chapter 2: Abstract Data Structures 3
Chapter 3: Immutable and Persistent Data 25
Chapter 4: Bags, Stacks, and Queues 67
Chapter 5: Heaps 135
Chapter 6: Sets and Search Trees 189
Conclusions 247
- DSL
Domain-Specif ic Languages in R: Advanced Statistical Programming, 2018
大きなプロジェクトでは有効性が高いかも知れないDSLについて詳述。
Chapter 1: Introduction 1
Chapter 2: Matrix Expressions 9
Chapter 3: Components of a Programming Language 31
Chapter 4: Functions, Classes, and Operators 55
Chapter 5: Parsing and Manipulating Expressions 77
Chapter 6: Lambda Expressions 101
Chapter 7: Environments and Expressions 109
Chapter 8: Tidy Evaluation 135
Chapter 9: List Comprehension 159
Chapter 10: Continuous-Time Markov Chains 167
Chapter 11: Pattern Matching 183
Chapter 12: Dynamic Programming 215
Chapter 13: Conclusion 247
まとめ
最初と最後二つの書籍は250ページ級だが、あとは100ページ級のモノグラフとして読めるので、初心者が最初の著作を読んで、色々動かしているうちに面白くなってきたら、各トピックに進めば、かなり高度な人材になれると思う。