-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathoverview_history.tex
321 lines (271 loc) · 8.36 KB
/
overview_history.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
\documentclass[aspectratio=169]{beamer}
\mode<presentation>
{
\usetheme{Warsaw}
% or ...
\setbeamercovered{transparent}
% or whatever (possibly just delete it)
}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}
%\usepackage{times}
%\usepackage[T1]{fontenc}
% Or whatever. Note that the encoding and the font should match. If T1
% does not look nice, try deleting the line with the fontenc.
\usepackage{amsmath,amsfonts,amssymb}
\input{macros}
\title[Overview and History of R]{Overview and History of R}
\date{Computing for Data Analysis}
\setbeamertemplate{footline}[page number]
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}{What is R?}
What is R?
\end{frame}
\begin{frame}{What is R?}
R is a dialect of the S language.
\end{frame}
\begin{frame}{What is S?}
\begin{itemize}
\item
S is a language that was developed by John Chambers and others at Bell
Labs.
\item
S was initiated in 1976 as an internal statistical analysis
environment---originally implemented as Fortran libraries.
\item
Early versions of the language did not contain functions for
statistical modeling.
\item
In 1988 the system was rewritten in C and began to resemble the system
that we have today (this was Version 3 of the language). The book
\textit{Statistical Models in S} by Chambers and Hastie (the white
book) documents the statistical analysis functionality.
\item
Version 4 of the S language was released in 1998 and is the version we
use today. The book \textit{Programming with Data} by John Chambers
(the green book) documents this version of the language.
\end{itemize}
\end{frame}
\begin{frame}{Historical Notes}
\begin{itemize}
\item
In 1993 Bell Labs gave StatSci (now Insightful Corp.) an exclusive
license to develop and sell the S language.
\item
In 2004 Insightful purchased the S language from Lucent for \$2
million and is the current owner.
\item
In 2006, Alcatel purchased Lucent Technologies and is now called
Alcatel-Lucent.
\item
Insightful sells its implementation of the S language under the
product name S-PLUS and has built a number of fancy features (GUIs,
mostly) on top of it---hence the ``PLUS''.
\item
In 2008 Insightful is acquired by TIBCO for \$25 million
\item
The fundamentals of the S language itself has not changed dramatically
since 1998.
\item
In 1998, S won the Association for Computing Machinery's Software
System Award.
\end{itemize}
\end{frame}
\begin{frame}{S Philosophy}
In ``Stages in the Evolution of S'', John Chambers writes:
\begin{quote}
``[W]e wanted users to be able to begin in an interactive environment,
where they did not consciously think of themselves as
programming. Then as their needs became clearer and their
sophistication increased, they should be able to slide gradually into
programming, when the language and system aspects would become more
important.''
\end{quote}
http://www.stat.bell-labs.com/S/history.html
\end{frame}
\begin{frame}{Back to R}
\begin{itemize}
\item
1991: Created in New Zealand by Ross Ihaka and Robert Gentleman.
Their experience developing R is documented in a 1996 \textit{JCGS}
paper.
\item
1993: First announcement of R to the public.
\item
1995: Martin M\"achler convinces Ross and Robert to use the GNU
General Public License to make R free software.
\item
1996: A public mailing list is created (R-help and R-devel)
\item
1997: The R Core Group is formed (containing some people associated
with S-PLUS). The core group controls the source code for R.
\item
2000: R version 1.0.0 is released.
\item
2012: R version 2.15.1 is released on June 22, 2012.
\end{itemize}
\end{frame}
\begin{frame}{Features of R}
\begin{itemize}
\item
Syntax is very similar to S, making it easy for S-PLUS users to switch
over.
\item
Semantics are superficially similar to S, but in reality are quite
different (more on that later).
\item
Runs on almost any standard computing platform/OS (even on the
PlayStation 3)
\item
Frequent releases (annual + bugfix releases); active development.
\end{itemize}
\end{frame}
\begin{frame}{Features of R (cont'd)}
\begin{itemize}
\item
Quite lean, as far as software goes; functionality is divided into
modular packages
\item
Graphics capabilities very sophisticated and better than most stat
packages.
\item
Useful for interactive work, but contains a powerful programming
language for developing new tools (user $\longrightarrow$ programmer)
\item
Very active and vibrant user community; R-help and R-devel mailing
lists and Stack Overflow
\end{itemize}
\end{frame}
\begin{frame}{Features of R (cont'd)}
It's free!\\
(Both in the sense of beer and in the sense of speech.)
\end{frame}
\begin{frame}{Free Software}
With \textit{free software}, you are granted
\begin{itemize}
\item
The freedom to run the program, for any purpose (freedom 0).
\item
The freedom to study how the program works, and adapt it to your needs
(freedom 1). Access to the source code is a precondition for this.
\item
The freedom to redistribute copies so you can help your neighbor
(freedom 2).
\item
The freedom to improve the program, and release your improvements to
the public, so that the whole community benefits (freedom 3). Access
to the source code is a precondition for this.
\end{itemize}
http://www.fsf.org
\end{frame}
\begin{frame}{Drawbacks of R}
\begin{itemize}
\item
Essentially based on 40 year old technology.
\item
Little built in support for dynamic or 3-D graphics (but things have
improved greatly since the ``old days'').
\item
Functionality is based on consumer demand and user contributions. If
no one feels like implementing your favorite method, then it's
\textit{your} job!
\begin{itemize}
\item (Or you need to pay someone to do it)
\end{itemize}
\item Objects must generally be stored in physical memory; but there
have been advancements to deal with this too
\item
Not ideal for all possible situations (but this is a drawback of all
software packages).
\end{itemize}
\end{frame}
\begin{frame}{Design of the R System}
The R system is divided into 2 conceptual parts:
\begin{enumerate}
\item
The ``base'' R system that you download from CRAN
\item
Everything else.
\end{enumerate}
R functionality is divided into a number of \textit{packages}.
\begin{itemize}
\item
The ``base'' R system contains, among other things, the \pkg{base}
package which is required to run R and contains the most fundamental
functions.
\item
The other packages contained in the ``base'' system include
\pkg{utils}, \pkg{stats}, \pkg{datasets}, \pkg{graphics},
\pkg{grDevices}, \pkg{grid}, \pkg{methods}, \pkg{tools},
\pkg{parallel}, \pkg{compiler}, \pkg{splines}, \pkg{tcltk},
\pkg{stats4}.
\item
There are also ``Recommend'' packages: \pkg{boot}, \pkg{class},
\pkg{cluster}, \pkg{codetools}, \pkg{foreign}, \pkg{KernSmooth},
\pkg{lattice}, \pkg{mgcv}, \pkg{nlme}, \pkg{rpart}, \pkg{survival},
\pkg{MASS}, \pkg{spatial}, \pkg{nnet}, \pkg{Matrix}.
\end{itemize}
\end{frame}
\begin{frame}{Design of the R System}
And there are many other packages available:
\begin{itemize}
\item
There are about $4000$ packages on CRAN that have been developed by
users and programmers around the world.
\item
There are also many packages associated with the Bioconductor project
(http://bioconductor.org).
\item
People often make packages available on their personal websites; there
is no reliable way to keep track of how many packages are available in
this fashion.
\end{itemize}
\end{frame}
\begin{frame}{Some R Resources}
Available from CRAN (http://cran.r-project.org)
\begin{itemize}
\item
An Introduction to R
\item
Writing R Extensions
\item
R Data Import/Export
\item
R Installation and Administration (mostly for building R from sources)
\item
R Internals (not for the faint of heart)
\end{itemize}
\end{frame}
\begin{frame}{Some Useful Books on S/R}
Standard texts
\begin{itemize}
\item
Chambers (2008). \textit{Software for Data Analysis}, Springer. (your
textbook)
\item
Chambers (1998). \textit{Programming with Data}, Springer.
\item
Venables \& Ripley (2002). \textit{Modern Applied Statistics with S},
Springer.
\item
Venables \& Ripley (2000). \textit{S Programming}, Springer.
\item
Pinheiro \& Bates (2000). \textit{Mixed-Effects Models in S and
S-PLUS}, Springer.
\item
Murrell (2005). \textit{R Graphics}, Chapman \& Hall/CRC Press.
\end{itemize}
Other resources
\begin{itemize}
\item
Springer has a series of books called \textit{Use R!}.
\item
A longer list of books is at
http://www.r-project.org/doc/bib/R-books.html
\end{itemize}
\end{frame}
\end{document}