The R Project SVN R

Rev

Rev 28322 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 28322 Rev 28348
1
<html lang="en">
1
<html lang="en">
2
<head>
2
<head>
3
<title>R FAQ</title>
3
<title>R FAQ</title>
4
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
4
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
5
<meta name="description" content="R FAQ">
5
<meta name="description" content="R FAQ">
6
<meta name="generator" content="makeinfo 4.6">
6
<meta name="generator" content="makeinfo 4.6">
7
<meta http-equiv="Content-Style-Type" content="text/css">
7
<meta http-equiv="Content-Style-Type" content="text/css">
8
<style type="text/css"><!--
8
<style type="text/css"><!--
9
  pre.display { font-family:inherit }
9
  pre.display { font-family:inherit }
10
  pre.format  { font-family:inherit }
10
  pre.format  { font-family:inherit }
11
  pre.smalldisplay { font-family:inherit; font-size:smaller }
11
  pre.smalldisplay { font-family:inherit; font-size:smaller }
12
  pre.smallformat  { font-family:inherit; font-size:smaller }
12
  pre.smallformat  { font-family:inherit; font-size:smaller }
13
  pre.smallexample { font-size:smaller }
13
  pre.smallexample { font-size:smaller }
14
  pre.smalllisp    { font-size:smaller }
14
  pre.smalllisp    { font-size:smaller }
15
--></style>
15
--></style>
16
</head>
16
</head>
17
<body>
17
<body>
18
<h1 class="settitle">R FAQ</h1>
18
<h1 class="settitle">R FAQ</h1>
19
<div class="node">
19
<div class="node">
20
<p><hr>
20
<p><hr>
21
Node:&nbsp;<a name="Top">Top</a>,
21
Node:&nbsp;<a name="Top">Top</a>,
22
Next:&nbsp;<a rel="next" accesskey="n" href="#Introduction">Introduction</a>,
22
Next:&nbsp;<a rel="next" accesskey="n" href="#Introduction">Introduction</a>,
23
Previous:&nbsp;<a rel="previous" accesskey="p" href="#dir">(dir)</a>,
23
Previous:&nbsp;<a rel="previous" accesskey="p" href="#dir">(dir)</a>,
24
Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
24
Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
25
<br>
25
<br>
26
</div>
26
</div>
27
 
27
 
28
<h2 class="unnumbered">R FAQ</h2>
28
<h2 class="unnumbered">R FAQ</h2>
29
 
29
 
30
<h2>Frequently Asked Questions on R</h2>
30
<h2>Frequently Asked Questions on R</h2>
31
<h2>Version 1.8-41, 2004-02-16</h2>
31
<h2>Version 1.8-42, 2004-02-19</h2>
32
<h2>ISBN 3-900051-01-1</h2>
32
<h2>ISBN 3-900051-01-1</h2>
33
<address>Kurt Hornik</address>
33
<address>Kurt Hornik</address>
34
<p><p><hr><p>
34
<p><p><hr><p>
35
 
35
 
36
<ul class="menu">
36
<ul class="menu">
37
<li><a accesskey="1" href="#Introduction">Introduction</a>: 
37
<li><a accesskey="1" href="#Introduction">Introduction</a>: 
38
<li><a accesskey="2" href="#R%20Basics">R Basics</a>: 
38
<li><a accesskey="2" href="#R%20Basics">R Basics</a>: 
39
<li><a accesskey="3" href="#R%20and%20S">R and S</a>: 
39
<li><a accesskey="3" href="#R%20and%20S">R and S</a>: 
40
<li><a accesskey="4" href="#R%20Web%20Interfaces">R Web Interfaces</a>: 
40
<li><a accesskey="4" href="#R%20Web%20Interfaces">R Web Interfaces</a>: 
41
<li><a accesskey="5" href="#R%20Add-On%20Packages">R Add-On Packages</a>: 
41
<li><a accesskey="5" href="#R%20Add-On%20Packages">R Add-On Packages</a>: 
42
<li><a accesskey="6" href="#R%20and%20Emacs">R and Emacs</a>: 
42
<li><a accesskey="6" href="#R%20and%20Emacs">R and Emacs</a>: 
43
<li><a accesskey="7" href="#R%20Miscellanea">R Miscellanea</a>: 
43
<li><a accesskey="7" href="#R%20Miscellanea">R Miscellanea</a>: 
44
<li><a accesskey="8" href="#R%20Programming">R Programming</a>: 
44
<li><a accesskey="8" href="#R%20Programming">R Programming</a>: 
45
<li><a accesskey="9" href="#R%20Bugs">R Bugs</a>: 
45
<li><a accesskey="9" href="#R%20Bugs">R Bugs</a>: 
46
<li><a href="#Acknowledgments">Acknowledgments</a>: 
46
<li><a href="#Acknowledgments">Acknowledgments</a>: 
47
</ul>
47
</ul>
48
 
48
 
49
<div class="node">
49
<div class="node">
50
<p><hr>
50
<p><hr>
51
Node:&nbsp;<a name="Introduction">Introduction</a>,
51
Node:&nbsp;<a name="Introduction">Introduction</a>,
52
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Basics">R Basics</a>,
52
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Basics">R Basics</a>,
53
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Top">Top</a>,
53
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Top">Top</a>,
54
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
54
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
55
<br>
55
<br>
56
</div>
56
</div>
57
 
57
 
58
<h2 class="chapter">1 Introduction</h2>
58
<h2 class="chapter">1 Introduction</h2>
59
 
59
 
60
<p>This document contains answers to some of the most frequently asked
60
<p>This document contains answers to some of the most frequently asked
61
questions about R.
61
questions about R.
62
 
62
 
63
<ul class="menu">
63
<ul class="menu">
64
<li><a accesskey="1" href="#Legalese">Legalese</a>: 
64
<li><a accesskey="1" href="#Legalese">Legalese</a>: 
65
<li><a accesskey="2" href="#Obtaining%20this%20document">Obtaining this document</a>: 
65
<li><a accesskey="2" href="#Obtaining%20this%20document">Obtaining this document</a>: 
66
<li><a accesskey="3" href="#Citing%20this%20document">Citing this document</a>: 
66
<li><a accesskey="3" href="#Citing%20this%20document">Citing this document</a>: 
67
<li><a accesskey="4" href="#Notation">Notation</a>: 
67
<li><a accesskey="4" href="#Notation">Notation</a>: 
68
<li><a accesskey="5" href="#Feedback">Feedback</a>: 
68
<li><a accesskey="5" href="#Feedback">Feedback</a>: 
69
</ul>
69
</ul>
70
 
70
 
71
<div class="node">
71
<div class="node">
72
<p><hr>
72
<p><hr>
73
Node:&nbsp;<a name="Legalese">Legalese</a>,
73
Node:&nbsp;<a name="Legalese">Legalese</a>,
74
Next:&nbsp;<a rel="next" accesskey="n" href="#Obtaining%20this%20document">Obtaining this document</a>,
74
Next:&nbsp;<a rel="next" accesskey="n" href="#Obtaining%20this%20document">Obtaining this document</a>,
75
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Introduction">Introduction</a>,
75
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Introduction">Introduction</a>,
76
Up:&nbsp;<a rel="up" accesskey="u" href="#Introduction">Introduction</a>
76
Up:&nbsp;<a rel="up" accesskey="u" href="#Introduction">Introduction</a>
77
<br>
77
<br>
78
</div>
78
</div>
79
 
79
 
80
<h3 class="section">1.1 Legalese</h3>
80
<h3 class="section">1.1 Legalese</h3>
81
 
81
 
82
<p>This document is copyright &copy; 1998-2004 by Kurt
82
<p>This document is copyright &copy; 1998-2004 by Kurt
83
Hornik.
83
Hornik.
84
 
84
 
85
   <p>This document is free software; you can redistribute it and/or modify it
85
   <p>This document is free software; you can redistribute it and/or modify it
86
under the terms of the <small>GNU</small> General Public License as published
86
under the terms of the <small>GNU</small> General Public License as published
87
by the Free Software Foundation; either version 2, or (at your option)
87
by the Free Software Foundation; either version 2, or (at your option)
88
any later version.
88
any later version.
89
 
89
 
90
   <p>This document is distributed in the hope that it will be useful, but
90
   <p>This document is distributed in the hope that it will be useful, but
91
WITHOUT ANY WARRANTY; without even the implied warranty of
91
WITHOUT ANY WARRANTY; without even the implied warranty of
92
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
92
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
93
<small>GNU</small> General Public License for more details.
93
<small>GNU</small> General Public License for more details.
94
 
94
 
95
   <p>A copy of the <small>GNU</small> General Public License is available via WWW
95
   <p>A copy of the <small>GNU</small> General Public License is available via WWW
96
at
96
at
97
 
97
 
98
<pre class="display">     <a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>.
98
<pre class="display">     <a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>.
99
     </pre>
99
     </pre>
100
 
100
 
101
<p>You can also obtain it by writing to the Free Software Foundation, Inc.,
101
<p>You can also obtain it by writing to the Free Software Foundation, Inc.,
102
59 Temple Place -- Suite 330, Boston, MA 02111-1307, USA.
102
59 Temple Place -- Suite 330, Boston, MA 02111-1307, USA.
103
 
103
 
104
<div class="node">
104
<div class="node">
105
<p><hr>
105
<p><hr>
106
Node:&nbsp;<a name="Obtaining%20this%20document">Obtaining this document</a>,
106
Node:&nbsp;<a name="Obtaining%20this%20document">Obtaining this document</a>,
107
Next:&nbsp;<a rel="next" accesskey="n" href="#Citing%20this%20document">Citing this document</a>,
107
Next:&nbsp;<a rel="next" accesskey="n" href="#Citing%20this%20document">Citing this document</a>,
108
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Legalese">Legalese</a>,
108
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Legalese">Legalese</a>,
109
Up:&nbsp;<a rel="up" accesskey="u" href="#Introduction">Introduction</a>
109
Up:&nbsp;<a rel="up" accesskey="u" href="#Introduction">Introduction</a>
110
<br>
110
<br>
111
</div>
111
</div>
112
 
112
 
113
<h3 class="section">1.2 Obtaining this document</h3>
113
<h3 class="section">1.2 Obtaining this document</h3>
114
 
114
 
115
<p>The latest version of this document is always available from
115
<p>The latest version of this document is always available from
116
 
116
 
117
<pre class="display">     <a href="http://www.ci.tuwien.ac.at/~hornik/R/">http://www.ci.tuwien.ac.at/~hornik/R/</a>
117
<pre class="display">     <a href="http://www.ci.tuwien.ac.at/~hornik/R/">http://www.ci.tuwien.ac.at/~hornik/R/</a>
118
     </pre>
118
     </pre>
119
 
119
 
120
   <p>From there, you can obtain versions converted to
120
   <p>From there, you can obtain versions converted to
121
<a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.txt">plain <small>ASCII</small> text</a>,
121
<a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.txt">plain <small>ASCII</small> text</a>,
122
<a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.dvi.gz">DVI</a>,
122
<a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.dvi.gz">DVI</a>,
123
<a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.info.gz"><small>GNU</small> info</a>, <a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html"><small>HTML</small></a>,
123
<a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.info.gz"><small>GNU</small> info</a>, <a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html"><small>HTML</small></a>,
124
<a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.pdf">PDF</a>,
124
<a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.pdf">PDF</a>,
125
<a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.ps.gz">PostScript</a> as
125
<a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.ps.gz">PostScript</a> as
126
well as the <a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.texi">Texinfo source</a> used for creating all these formats using the
126
well as the <a href="http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.texi">Texinfo source</a> used for creating all these formats using the
127
<a href="http://texinfo.org/"><small>GNU</small> Texinfo system</a>.
127
<a href="http://texinfo.org/"><small>GNU</small> Texinfo system</a>.
128
 
128
 
129
   <p>You can also obtain the R <small>FAQ</small> from the <code>doc/FAQ</code>
129
   <p>You can also obtain the R <small>FAQ</small> from the <code>doc/FAQ</code>
130
subdirectory of a <small>CRAN</small> site (see <a href="#What%20is%20CRAN%3f">What is CRAN?</a>).
130
subdirectory of a <small>CRAN</small> site (see <a href="#What%20is%20CRAN%3f">What is CRAN?</a>).
131
 
131
 
132
<div class="node">
132
<div class="node">
133
<p><hr>
133
<p><hr>
134
Node:&nbsp;<a name="Citing%20this%20document">Citing this document</a>,
134
Node:&nbsp;<a name="Citing%20this%20document">Citing this document</a>,
135
Next:&nbsp;<a rel="next" accesskey="n" href="#Notation">Notation</a>,
135
Next:&nbsp;<a rel="next" accesskey="n" href="#Notation">Notation</a>,
136
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Obtaining%20this%20document">Obtaining this document</a>,
136
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Obtaining%20this%20document">Obtaining this document</a>,
137
Up:&nbsp;<a rel="up" accesskey="u" href="#Introduction">Introduction</a>
137
Up:&nbsp;<a rel="up" accesskey="u" href="#Introduction">Introduction</a>
138
<br>
138
<br>
139
</div>
139
</div>
140
 
140
 
141
<h3 class="section">1.3 Citing this document</h3>
141
<h3 class="section">1.3 Citing this document</h3>
142
 
142
 
143
<p>In publications, please refer to this <small>FAQ</small> as Hornik
143
<p>In publications, please refer to this <small>FAQ</small> as Hornik
144
(2004), "The R <small>FAQ</small>", and give the above,
144
(2004), "The R <small>FAQ</small>", and give the above,
145
<em>official</em> <small>URL</small> and the ISBN 3-900051-01-1.
145
<em>official</em> <small>URL</small> and the ISBN 3-900051-01-1.
146
 
146
 
147
<div class="node">
147
<div class="node">
148
<p><hr>
148
<p><hr>
149
Node:&nbsp;<a name="Notation">Notation</a>,
149
Node:&nbsp;<a name="Notation">Notation</a>,
150
Next:&nbsp;<a rel="next" accesskey="n" href="#Feedback">Feedback</a>,
150
Next:&nbsp;<a rel="next" accesskey="n" href="#Feedback">Feedback</a>,
151
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Citing%20this%20document">Citing this document</a>,
151
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Citing%20this%20document">Citing this document</a>,
152
Up:&nbsp;<a rel="up" accesskey="u" href="#Introduction">Introduction</a>
152
Up:&nbsp;<a rel="up" accesskey="u" href="#Introduction">Introduction</a>
153
<br>
153
<br>
154
</div>
154
</div>
155
 
155
 
156
<h3 class="section">1.4 Notation</h3>
156
<h3 class="section">1.4 Notation</h3>
157
 
157
 
158
<p>Everything should be pretty standard.  <code>R&gt;</code> is used for the R
158
<p>Everything should be pretty standard.  <code>R&gt;</code> is used for the R
159
prompt, and a <code>$</code> for the shell prompt (where applicable).
159
prompt, and a <code>$</code> for the shell prompt (where applicable).
160
 
160
 
161
<div class="node">
161
<div class="node">
162
<p><hr>
162
<p><hr>
163
Node:&nbsp;<a name="Feedback">Feedback</a>,
163
Node:&nbsp;<a name="Feedback">Feedback</a>,
164
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Notation">Notation</a>,
164
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Notation">Notation</a>,
165
Up:&nbsp;<a rel="up" accesskey="u" href="#Introduction">Introduction</a>
165
Up:&nbsp;<a rel="up" accesskey="u" href="#Introduction">Introduction</a>
166
<br>
166
<br>
167
</div>
167
</div>
168
 
168
 
169
<h3 class="section">1.5 Feedback</h3>
169
<h3 class="section">1.5 Feedback</h3>
170
 
170
 
171
<p>Feedback is of course most welcome.
171
<p>Feedback is of course most welcome.
172
 
172
 
173
   <p>In particular, note that I do not have access to Windows or Macintosh
173
   <p>In particular, note that I do not have access to Windows or Macintosh
174
systems.  Features specific to the Windows and MacOS X ports of R are
174
systems.  Features specific to the Windows and MacOS X ports of R are
175
described in the <a href="http://www.stats.ox.ac.uk/pub/R/rw-FAQ.html">"R for Windows <small>FAQ</small>"</a> and the
175
described in the <a href="http://www.stats.ox.ac.uk/pub/R/rw-FAQ.html">"R for Windows <small>FAQ</small>"</a> and the
176
<a href="http://cran.r-project.org/bin/macosx/RAqua-FAQ.html">"R for Macintosh <small>FAQ</small>/DOC"</a>.  If you have information on Macintosh or
176
<a href="http://cran.r-project.org/bin/macosx/RAqua-FAQ.html">"R for Macintosh <small>FAQ</small>/DOC"</a>.  If you have information on Macintosh or
177
Windows systems that you think should be added to this document, please
177
Windows systems that you think should be added to this document, please
178
let me know.
178
let me know.
179
 
179
 
180
<div class="node">
180
<div class="node">
181
<p><hr>
181
<p><hr>
182
Node:&nbsp;<a name="R%20Basics">R Basics</a>,
182
Node:&nbsp;<a name="R%20Basics">R Basics</a>,
183
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20and%20S">R and S</a>,
183
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20and%20S">R and S</a>,
184
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Introduction">Introduction</a>,
184
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Introduction">Introduction</a>,
185
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
185
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
186
<br>
186
<br>
187
</div>
187
</div>
188
 
188
 
189
<h2 class="chapter">2 R Basics</h2>
189
<h2 class="chapter">2 R Basics</h2>
190
 
190
 
191
<ul class="menu">
191
<ul class="menu">
192
<li><a accesskey="1" href="#What%20is%20R%3f">What is R?</a>: 
192
<li><a accesskey="1" href="#What%20is%20R%3f">What is R?</a>: 
193
<li><a accesskey="2" href="#What%20machines%20does%20R%20run%20on%3f">What machines does R run on?</a>: 
193
<li><a accesskey="2" href="#What%20machines%20does%20R%20run%20on%3f">What machines does R run on?</a>: 
194
<li><a accesskey="3" href="#What%20is%20the%20current%20version%20of%20R%3f">What is the current version of R?</a>: 
194
<li><a accesskey="3" href="#What%20is%20the%20current%20version%20of%20R%3f">What is the current version of R?</a>: 
195
<li><a accesskey="4" href="#How%20can%20R%20be%20obtained%3f">How can R be obtained?</a>: 
195
<li><a accesskey="4" href="#How%20can%20R%20be%20obtained%3f">How can R be obtained?</a>: 
196
<li><a accesskey="5" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>: 
196
<li><a accesskey="5" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>: 
197
<li><a accesskey="6" href="#Are%20there%20Unix%20binaries%20for%20R%3f">Are there Unix binaries for R?</a>: 
197
<li><a accesskey="6" href="#Are%20there%20Unix%20binaries%20for%20R%3f">Are there Unix binaries for R?</a>: 
198
<li><a accesskey="7" href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>: 
198
<li><a accesskey="7" href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>: 
199
<li><a accesskey="8" href="#Citing%20R">Citing R</a>: 
199
<li><a accesskey="8" href="#Citing%20R">Citing R</a>: 
200
<li><a accesskey="9" href="#What%20mailing%20lists%20exist%20for%20R%3f">What mailing lists exist for R?</a>: 
200
<li><a accesskey="9" href="#What%20mailing%20lists%20exist%20for%20R%3f">What mailing lists exist for R?</a>: 
201
<li><a href="#What%20is%20CRAN%3f">What is CRAN?</a>: 
201
<li><a href="#What%20is%20CRAN%3f">What is CRAN?</a>: 
202
<li><a href="#Can%20I%20use%20R%20for%20commercial%20purposes%3f">Can I use R for commercial purposes?</a>: 
202
<li><a href="#Can%20I%20use%20R%20for%20commercial%20purposes%3f">Can I use R for commercial purposes?</a>: 
203
<li><a href="#Why%20is%20R%20named%20R%3f">Why is R named R?</a>: 
203
<li><a href="#Why%20is%20R%20named%20R%3f">Why is R named R?</a>: 
204
</ul>
204
</ul>
205
 
205
 
206
<div class="node">
206
<div class="node">
207
<p><hr>
207
<p><hr>
208
Node:&nbsp;<a name="What%20is%20R%3f">What is R?</a>,
208
Node:&nbsp;<a name="What%20is%20R%3f">What is R?</a>,
209
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20machines%20does%20R%20run%20on%3f">What machines does R run on?</a>,
209
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20machines%20does%20R%20run%20on%3f">What machines does R run on?</a>,
210
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Basics">R Basics</a>,
210
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Basics">R Basics</a>,
211
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
211
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
212
<br>
212
<br>
213
</div>
213
</div>
214
 
214
 
215
<h3 class="section">2.1 What is R?</h3>
215
<h3 class="section">2.1 What is R?</h3>
216
 
216
 
217
<p>R is a system for statistical computation and graphics.  It consists of
217
<p>R is a system for statistical computation and graphics.  It consists of
218
a language plus a run-time environment with graphics, a debugger, access
218
a language plus a run-time environment with graphics, a debugger, access
219
to certain system functions, and the ability to run programs stored in
219
to certain system functions, and the ability to run programs stored in
220
script files.
220
script files.
221
 
221
 
222
   <p>The design of R has been heavily influenced by two existing languages:
222
   <p>The design of R has been heavily influenced by two existing languages:
223
Becker, Chambers &amp; Wilks' S (see <a href="#What%20is%20S%3f">What is S?</a>) and Sussman's
223
Becker, Chambers &amp; Wilks' S (see <a href="#What%20is%20S%3f">What is S?</a>) and Sussman's
224
<a href="http://www.cs.indiana.edu/scheme-repository/home.html">Scheme</a>. 
224
<a href="http://www.cs.indiana.edu/scheme-repository/home.html">Scheme</a>. 
225
Whereas the resulting language is very similar in appearance to S, the
225
Whereas the resulting language is very similar in appearance to S, the
226
underlying implementation and semantics are derived from Scheme. 
226
underlying implementation and semantics are derived from Scheme. 
227
See <a href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>, for further details.
227
See <a href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>, for further details.
228
 
228
 
229
   <p>The core of R is an interpreted computer language which allows branching
229
   <p>The core of R is an interpreted computer language which allows branching
230
and looping as well as modular programming using functions.  Most of the
230
and looping as well as modular programming using functions.  Most of the
231
user-visible functions in R are written in R.  It is possible for the
231
user-visible functions in R are written in R.  It is possible for the
232
user to interface to procedures written in the C, C++, or FORTRAN
232
user to interface to procedures written in the C, C++, or FORTRAN
233
languages for efficiency.  The R distribution contains functionality for
233
languages for efficiency.  The R distribution contains functionality for
234
a large number of statistical procedures.  Among these are: linear and
234
a large number of statistical procedures.  Among these are: linear and
235
generalized linear models, nonlinear regression models, time series
235
generalized linear models, nonlinear regression models, time series
236
analysis, classical parametric and nonparametric tests, clustering and
236
analysis, classical parametric and nonparametric tests, clustering and
237
smoothing.  There is also a large set of functions which provide a
237
smoothing.  There is also a large set of functions which provide a
238
flexible graphical environment for creating various kinds of data
238
flexible graphical environment for creating various kinds of data
239
presentations.  Additional modules ("add-on packages") are available
239
presentations.  Additional modules ("add-on packages") are available
240
for a variety of specific purposes (see <a href="#R%20Add-On%20Packages">R Add-On Packages</a>).
240
for a variety of specific purposes (see <a href="#R%20Add-On%20Packages">R Add-On Packages</a>).
241
 
241
 
242
   <p>R was initially written by <a href="mailto:Ross.Ihaka@R-project.org">Ross Ihaka</a>
242
   <p>R was initially written by <a href="mailto:Ross.Ihaka@R-project.org">Ross Ihaka</a>
243
and <a href="mailto:Robert.Gentleman@R-project.org">Robert Gentleman</a> at the
243
and <a href="mailto:Robert.Gentleman@R-project.org">Robert Gentleman</a> at the
244
Department of Statistics of the University of Auckland in Auckland, New
244
Department of Statistics of the University of Auckland in Auckland, New
245
Zealand.  In addition, a large group of individuals has contributed to R
245
Zealand.  In addition, a large group of individuals has contributed to R
246
by sending code and bug reports.
246
by sending code and bug reports.
247
 
247
 
248
   <p>Since mid-1997 there has been a core group (the "R Core Team") who can
248
   <p>Since mid-1997 there has been a core group (the "R Core Team") who can
249
modify the R source code CVS archive.  The group currently consists of
249
modify the R source code CVS archive.  The group currently consists of
250
Doug Bates, John Chambers, Peter Dalgaard, Robert Gentleman, Kurt
250
Doug Bates, John Chambers, Peter Dalgaard, Robert Gentleman, Kurt
251
Hornik, Stefano Iacus, Ross Ihaka, Friedrich Leisch, Thomas Lumley,
251
Hornik, Stefano Iacus, Ross Ihaka, Friedrich Leisch, Thomas Lumley,
252
Martin Maechler, Duncan Murdoch, Paul Murrell, Martyn Plummer, Brian
252
Martin Maechler, Duncan Murdoch, Paul Murrell, Martyn Plummer, Brian
253
Ripley, Duncan Temple Lang, and Luke Tierney.
253
Ripley, Duncan Temple Lang, and Luke Tierney.
254
 
254
 
255
   <p>R has a home page at <a href="http://www.R-project.org/">http://www.R-project.org/</a>.  It is free
255
   <p>R has a home page at <a href="http://www.R-project.org/">http://www.R-project.org/</a>.  It is free
256
software distributed under a <small>GNU</small>-style copyleft, and an
256
software distributed under a <small>GNU</small>-style copyleft, and an
257
official part of the <small>GNU</small> project ("<small>GNU</small> S").
257
official part of the <small>GNU</small> project ("<small>GNU</small> S").
258
 
258
 
259
<div class="node">
259
<div class="node">
260
<p><hr>
260
<p><hr>
261
Node:&nbsp;<a name="What%20machines%20does%20R%20run%20on%3f">What machines does R run on?</a>,
261
Node:&nbsp;<a name="What%20machines%20does%20R%20run%20on%3f">What machines does R run on?</a>,
262
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20is%20the%20current%20version%20of%20R%3f">What is the current version of R?</a>,
262
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20is%20the%20current%20version%20of%20R%3f">What is the current version of R?</a>,
263
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20R%3f">What is R?</a>,
263
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20R%3f">What is R?</a>,
264
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
264
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
265
<br>
265
<br>
266
</div>
266
</div>
267
 
267
 
268
<h3 class="section">2.2 What machines does R run on?</h3>
268
<h3 class="section">2.2 What machines does R run on?</h3>
269
 
269
 
270
<p>R is being developed for the Unix, Windows and Mac families of operating
270
<p>R is being developed for the Unix, Windows and Mac families of operating
271
systems.  Support for Mac OS Classic will end with the 1.7 series.
271
systems.  Support for Mac OS Classic will end with the 1.7 series.
272
 
272
 
273
   <p>The current version of R will configure and build under a number of
273
   <p>The current version of R will configure and build under a number of
274
common Unix platforms including i386-freebsd, <var>cpu</var>-linux-gnu for
274
common Unix platforms including i386-freebsd, <var>cpu</var>-linux-gnu for
275
the i386, alpha, arm, hppa, ia64, m68k, powerpc, and sparc CPUs (see
275
the i386, alpha, arm, hppa, ia64, m68k, powerpc, and sparc CPUs (see
276
e.g. <a href="http://buildd.debian.org/build.php?&amp;pkg=r-base">http://buildd.debian.org/build.php?&amp;pkg=r-base</a>),
276
e.g. <a href="http://buildd.debian.org/build.php?&amp;pkg=r-base">http://buildd.debian.org/build.php?&amp;pkg=r-base</a>),
277
i386-sun-solaris, powerpc-apple-darwin, mips-sgi-irix, alpha-dec-osf4,
277
i386-sun-solaris, powerpc-apple-darwin, mips-sgi-irix, alpha-dec-osf4,
278
rs6000-ibm-aix, hppa-hp-hpux, and sparc-sun-solaris.
278
rs6000-ibm-aix, hppa-hp-hpux, and sparc-sun-solaris.
279
 
279
 
280
   <p>If you know about other platforms, please drop us a note.
280
   <p>If you know about other platforms, please drop us a note.
281
 
281
 
282
<div class="node">
282
<div class="node">
283
<p><hr>
283
<p><hr>
284
Node:&nbsp;<a name="What%20is%20the%20current%20version%20of%20R%3f">What is the current version of R?</a>,
284
Node:&nbsp;<a name="What%20is%20the%20current%20version%20of%20R%3f">What is the current version of R?</a>,
285
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20R%20be%20obtained%3f">How can R be obtained?</a>,
285
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20R%20be%20obtained%3f">How can R be obtained?</a>,
286
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20machines%20does%20R%20run%20on%3f">What machines does R run on?</a>,
286
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20machines%20does%20R%20run%20on%3f">What machines does R run on?</a>,
287
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
287
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
288
<br>
288
<br>
289
</div>
289
</div>
290
 
290
 
291
<h3 class="section">2.3 What is the current version of R?</h3>
291
<h3 class="section">2.3 What is the current version of R?</h3>
292
 
292
 
293
<p>The current released version is 1.8.1.  Based on this
293
<p>The current released version is 1.8.1.  Based on this
294
`major.minor.patchlevel' numbering scheme, there are two development
294
`major.minor.patchlevel' numbering scheme, there are two development
295
versions of R, working towards the next patch (`r-patched') and minor or
295
versions of R, working towards the next patch (`r-patched') and minor or
296
eventually major (`r-devel') releases of R, respectively.  Version
296
eventually major (`r-devel') releases of R, respectively.  Version
297
r-patched is for bug fixes mostly.  New features are typically
297
r-patched is for bug fixes mostly.  New features are typically
298
introduced in r-devel.
298
introduced in r-devel.
299
 
299
 
300
<div class="node">
300
<div class="node">
301
<p><hr>
301
<p><hr>
302
Node:&nbsp;<a name="How%20can%20R%20be%20obtained%3f">How can R be obtained?</a>,
302
Node:&nbsp;<a name="How%20can%20R%20be%20obtained%3f">How can R be obtained?</a>,
303
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>,
303
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>,
304
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20the%20current%20version%20of%20R%3f">What is the current version of R?</a>,
304
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20the%20current%20version%20of%20R%3f">What is the current version of R?</a>,
305
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
305
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
306
<br>
306
<br>
307
</div>
307
</div>
308
 
308
 
309
<h3 class="section">2.4 How can R be obtained?</h3>
309
<h3 class="section">2.4 How can R be obtained?</h3>
310
 
310
 
311
<p>Sources, binaries and documentation for R can be obtained via <small>CRAN</small>,
311
<p>Sources, binaries and documentation for R can be obtained via <small>CRAN</small>,
312
the "Comprehensive R Archive Network" (see <a href="#What%20is%20CRAN%3f">What is CRAN?</a>).
312
the "Comprehensive R Archive Network" (see <a href="#What%20is%20CRAN%3f">What is CRAN?</a>).
313
 
313
 
314
   <p>Sources are also available via anonymous rsync.  Use
314
   <p>Sources are also available via anonymous rsync.  Use
315
 
315
 
316
<pre class="example">     rsync -rC --delete rsync.R-project.org::<var>module</var> R
316
<pre class="example">     rsync -rC --delete rsync.R-project.org::<var>module</var> R
317
     </pre>
317
     </pre>
318
 
318
 
319
<p>to create a copy of the source tree specified by <var>module</var> in the
319
<p>to create a copy of the source tree specified by <var>module</var> in the
320
subdirectory <code>R</code> of the current directory, where <var>module</var>
320
subdirectory <code>R</code> of the current directory, where <var>module</var>
321
specifies one of the three existing flavors of the R sources, and can be
321
specifies one of the three existing flavors of the R sources, and can be
322
one of <code>r-release</code> (current released version), <code>r-patched</code>
322
one of <code>r-release</code> (current released version), <code>r-patched</code>
323
(patched released version), and <code>r-devel</code> (development version). 
323
(patched released version), and <code>r-devel</code> (development version). 
324
The rsync trees are created directly from the master CVS archive and are
324
The rsync trees are created directly from the master CVS archive and are
325
updated hourly.  The <code>-C</code> and in the <code>rsync</code> command
325
updated hourly.  The <code>-C</code> and in the <code>rsync</code> command
326
is to cause it to skip the CVS directories.  Further information on
326
is to cause it to skip the CVS directories.  Further information on
327
<code>rsync</code> is available at <a href="http://rsync.samba.org/rsync/">http://rsync.samba.org/rsync/</a>.
327
<code>rsync</code> is available at <a href="http://rsync.samba.org/rsync/">http://rsync.samba.org/rsync/</a>.
328
 
328
 
329
   <p>The sources of the development version are also available via anonymous
329
   <p>The sources of the development version are also available via anonymous
330
CVS.  See <a href="http://anoncvs.R-project.org">http://anoncvs.R-project.org</a> for more information.
330
CVS.  See <a href="http://anoncvs.R-project.org">http://anoncvs.R-project.org</a> for more information.
331
 
331
 
332
<div class="node">
332
<div class="node">
333
<p><hr>
333
<p><hr>
334
Node:&nbsp;<a name="How%20can%20R%20be%20installed%3f">How can R be installed?</a>,
334
Node:&nbsp;<a name="How%20can%20R%20be%20installed%3f">How can R be installed?</a>,
335
Next:&nbsp;<a rel="next" accesskey="n" href="#Are%20there%20Unix%20binaries%20for%20R%3f">Are there Unix binaries for R?</a>,
335
Next:&nbsp;<a rel="next" accesskey="n" href="#Are%20there%20Unix%20binaries%20for%20R%3f">Are there Unix binaries for R?</a>,
336
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20R%20be%20obtained%3f">How can R be obtained?</a>,
336
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20R%20be%20obtained%3f">How can R be obtained?</a>,
337
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
337
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
338
<br>
338
<br>
339
</div>
339
</div>
340
 
340
 
341
<h3 class="section">2.5 How can R be installed?</h3>
341
<h3 class="section">2.5 How can R be installed?</h3>
342
 
342
 
343
<ul class="menu">
343
<ul class="menu">
344
<li><a accesskey="1" href="#How%20can%20R%20be%20installed%20(Unix)">How can R be installed (Unix)</a>: 
344
<li><a accesskey="1" href="#How%20can%20R%20be%20installed%20(Unix)">How can R be installed (Unix)</a>: 
345
<li><a accesskey="2" href="#How%20can%20R%20be%20installed%20(Windows)">How can R be installed (Windows)</a>: 
345
<li><a accesskey="2" href="#How%20can%20R%20be%20installed%20(Windows)">How can R be installed (Windows)</a>: 
346
<li><a accesskey="3" href="#How%20can%20R%20be%20installed%20(Macintosh)">How can R be installed (Macintosh)</a>: 
346
<li><a accesskey="3" href="#How%20can%20R%20be%20installed%20(Macintosh)">How can R be installed (Macintosh)</a>: 
347
</ul>
347
</ul>
348
 
348
 
349
<div class="node">
349
<div class="node">
350
<p><hr>
350
<p><hr>
351
Node:&nbsp;<a name="How%20can%20R%20be%20installed%20(Unix)">How can R be installed (Unix)</a>,
351
Node:&nbsp;<a name="How%20can%20R%20be%20installed%20(Unix)">How can R be installed (Unix)</a>,
352
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20R%20be%20installed%20(Windows)">How can R be installed (Windows)</a>,
352
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20R%20be%20installed%20(Windows)">How can R be installed (Windows)</a>,
353
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>,
353
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>,
354
Up:&nbsp;<a rel="up" accesskey="u" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>
354
Up:&nbsp;<a rel="up" accesskey="u" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>
355
<br>
355
<br>
356
</div>
356
</div>
357
 
357
 
358
<h3 class="subsection">2.5.1 How can R be installed (Unix)</h4>
358
<h3 class="subsection">2.5.1 How can R be installed (Unix)</h4>
359
 
359
 
360
<p>If binaries are available for your platform (see <a href="#Are%20there%20Unix%20binaries%20for%20R%3f">Are there Unix binaries for R?</a>), you can use these, following the instructions that
360
<p>If binaries are available for your platform (see <a href="#Are%20there%20Unix%20binaries%20for%20R%3f">Are there Unix binaries for R?</a>), you can use these, following the instructions that
361
come with them.
361
come with them.
362
 
362
 
363
   <p>Otherwise, you can compile and install R yourself, which can be done
363
   <p>Otherwise, you can compile and install R yourself, which can be done
364
very easily under a number of common Unix platforms (see <a href="#What%20machines%20does%20R%20run%20on%3f">What machines does R run on?</a>).  The file <code>INSTALL</code> that comes with the
364
very easily under a number of common Unix platforms (see <a href="#What%20machines%20does%20R%20run%20on%3f">What machines does R run on?</a>).  The file <code>INSTALL</code> that comes with the
365
R distribution contains a brief introduction, and the "R Installation
365
R distribution contains a brief introduction, and the "R Installation
366
and Administration" guide (see <a href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>)
366
and Administration" guide (see <a href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>)
367
has full details.
367
has full details.
368
 
368
 
369
   <p>Note that you need a FORTRAN compiler or <code>f2c</code> in addition to
369
   <p>Note that you need a FORTRAN compiler or <code>f2c</code> in addition to
370
a C compiler to build R.  Also, you need Perl version 5 to build the R
370
a C compiler to build R.  Also, you need Perl version 5 to build the R
371
object documentations.  (If this is not available on your system, you
371
object documentations.  (If this is not available on your system, you
372
can obtain a PDF version of the object reference manual via <small>CRAN</small>.)
372
can obtain a PDF version of the object reference manual via <small>CRAN</small>.)
373
 
373
 
374
   <p>In the simplest case, untar the R source code, change to the directory
374
   <p>In the simplest case, untar the R source code, change to the directory
375
thus created, and issue the following commands (at the shell prompt):
375
thus created, and issue the following commands (at the shell prompt):
376
 
376
 
377
<pre class="example">     $ ./configure
377
<pre class="example">     $ ./configure
378
     $ make
378
     $ make
379
     </pre>
379
     </pre>
380
 
380
 
381
   <p>If these commands execute successfully, the R binary and a shell script
381
   <p>If these commands execute successfully, the R binary and a shell script
382
front-end called <code>R</code> are created and copied to the <code>bin</code>
382
front-end called <code>R</code> are created and copied to the <code>bin</code>
383
directory.  You can copy the script to a place where users can invoke
383
directory.  You can copy the script to a place where users can invoke
384
it, for example to <code>/usr/local/bin</code>.  In addition, plain text help
384
it, for example to <code>/usr/local/bin</code>.  In addition, plain text help
385
pages as well as <small>HTML</small> and LaTeX versions of the documentation are
385
pages as well as <small>HTML</small> and LaTeX versions of the documentation are
386
built.
386
built.
387
 
387
 
388
   <p>Use <kbd>make dvi</kbd> to create DVI versions of the R manuals, such as
388
   <p>Use <kbd>make dvi</kbd> to create DVI versions of the R manuals, such as
389
<code>refman.dvi</code> (an R object reference index) and <code>R-exts.dvi</code>,
389
<code>refman.dvi</code> (an R object reference index) and <code>R-exts.dvi</code>,
390
the "R Extension Writers Guide", in the <code>doc/manual</code>
390
the "R Extension Writers Guide", in the <code>doc/manual</code>
391
subdirectory.  These files can be previewed and printed using standard
391
subdirectory.  These files can be previewed and printed using standard
392
programs such as <code>xdvi</code> and <code>dvips</code>.  You can also use
392
programs such as <code>xdvi</code> and <code>dvips</code>.  You can also use
393
<kbd>make pdf</kbd> to build PDF (Portable Document Format) version of the
393
<kbd>make pdf</kbd> to build PDF (Portable Document Format) version of the
394
manuals, and view these using e.g. Acrobat.  Manuals written in the
394
manuals, and view these using e.g. Acrobat.  Manuals written in the
395
<small>GNU</small> Texinfo system can also be converted to info files
395
<small>GNU</small> Texinfo system can also be converted to info files
396
suitable for reading online with Emacs or stand-alone <small>GNU</small>
396
suitable for reading online with Emacs or stand-alone <small>GNU</small>
397
Info; use <kbd>make info</kbd> to create these versions (note that this
397
Info; use <kbd>make info</kbd> to create these versions (note that this
398
requires <code>makeinfo</code> version 4).
398
requires <code>makeinfo</code> version 4).
399
 
399
 
400
   <p>Finally, use <kbd>make check</kbd> to find out whether your R system works
400
   <p>Finally, use <kbd>make check</kbd> to find out whether your R system works
401
correctly.
401
correctly.
402
 
402
 
403
   <p>You can also perform a "system-wide" installation using <kbd>make
403
   <p>You can also perform a "system-wide" installation using <kbd>make
404
install</kbd>.  By default, this will install to the following directories:
404
install</kbd>.  By default, this will install to the following directories:
405
 
405
 
406
     <dl>
406
     <dl>
407
<dt><code>${prefix}/bin</code>
407
<dt><code>${prefix}/bin</code>
408
     <dd>the front-end shell script
408
     <dd>the front-end shell script
409
<br><dt><code>${prefix}/man/man1</code>
409
<br><dt><code>${prefix}/man/man1</code>
410
     <dd>the man page
410
     <dd>the man page
411
<br><dt><code>${prefix}/lib/R</code>
411
<br><dt><code>${prefix}/lib/R</code>
412
     <dd>all the rest (libraries, on-line help system, <small class="dots">...</small>).  This is the "R
412
     <dd>all the rest (libraries, on-line help system, <small class="dots">...</small>).  This is the "R
413
Home Directory" (<code>R_HOME</code>) of the installed system. 
413
Home Directory" (<code>R_HOME</code>) of the installed system. 
414
</dl>
414
</dl>
415
 
415
 
416
<p>In the above, <code>prefix</code> is determined during configuration
416
<p>In the above, <code>prefix</code> is determined during configuration
417
(typically <code>/usr/local</code>) and can be set by running
417
(typically <code>/usr/local</code>) and can be set by running
418
<code>configure</code> with the option
418
<code>configure</code> with the option
419
 
419
 
420
<pre class="example">     $ ./configure --prefix=/where/you/want/R/to/go
420
<pre class="example">     $ ./configure --prefix=/where/you/want/R/to/go
421
     </pre>
421
     </pre>
422
 
422
 
423
<p>(E.g., the R executable will then be installed into
423
<p>(E.g., the R executable will then be installed into
424
<code>/where/you/want/R/to/go/bin</code>.)
424
<code>/where/you/want/R/to/go/bin</code>.)
425
 
425
 
426
   <p>To install DVI, info and PDF versions of the manuals, use <kbd>make
426
   <p>To install DVI, info and PDF versions of the manuals, use <kbd>make
427
install-dvi</kbd>, <kbd>make install-info</kbd> and <kbd>make install-pdf</kbd>,
427
install-dvi</kbd>, <kbd>make install-info</kbd> and <kbd>make install-pdf</kbd>,
428
respectively.
428
respectively.
429
 
429
 
430
<div class="node">
430
<div class="node">
431
<p><hr>
431
<p><hr>
432
Node:&nbsp;<a name="How%20can%20R%20be%20installed%20(Windows)">How can R be installed (Windows)</a>,
432
Node:&nbsp;<a name="How%20can%20R%20be%20installed%20(Windows)">How can R be installed (Windows)</a>,
433
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20R%20be%20installed%20(Macintosh)">How can R be installed (Macintosh)</a>,
433
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20R%20be%20installed%20(Macintosh)">How can R be installed (Macintosh)</a>,
434
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20R%20be%20installed%20(Unix)">How can R be installed (Unix)</a>,
434
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20R%20be%20installed%20(Unix)">How can R be installed (Unix)</a>,
435
Up:&nbsp;<a rel="up" accesskey="u" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>
435
Up:&nbsp;<a rel="up" accesskey="u" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>
436
<br>
436
<br>
437
</div>
437
</div>
438
 
438
 
439
<h3 class="subsection">2.5.2 How can R be installed (Windows)</h4>
439
<h3 class="subsection">2.5.2 How can R be installed (Windows)</h4>
440
 
440
 
441
<p>The <code>bin/windows</code> directory of a <small>CRAN</small> site contains binaries for
441
<p>The <code>bin/windows</code> directory of a <small>CRAN</small> site contains binaries for
442
a base distribution and a large number of add-on packages from <small>CRAN</small>
442
a base distribution and a large number of add-on packages from <small>CRAN</small>
443
to run on Windows 95, 98, ME, NT4, 2000, and XP (at least) on Intel and
443
to run on Windows 95, 98, ME, NT4, 2000, and XP (at least) on Intel and
444
clones (but not on other platforms).  The Windows version of R was
444
clones (but not on other platforms).  The Windows version of R was
445
created by Robert Gentleman, and is now being developed and maintained
445
created by Robert Gentleman, and is now being developed and maintained
446
by <a href="mailto:murdoch@stats.uwo.ca">Duncan Murdoch</a> and
446
by <a href="mailto:murdoch@stats.uwo.ca">Duncan Murdoch</a> and
447
<a href="mailto:Brian.Ripley@R-project.org">Brian D. Ripley</a>.
447
<a href="mailto:Brian.Ripley@R-project.org">Brian D. Ripley</a>.
448
 
448
 
449
   <p>For most installations the Windows installer program will be the easiest
449
   <p>For most installations the Windows installer program will be the easiest
450
tool to use.
450
tool to use.
451
 
451
 
452
   <p>See the <a href="http://www.stats.ox.ac.uk/pub/R/rw-FAQ.html">"R for Windows <small>FAQ</small>"</a> for more details.
452
   <p>See the <a href="http://www.stats.ox.ac.uk/pub/R/rw-FAQ.html">"R for Windows <small>FAQ</small>"</a> for more details.
453
 
453
 
454
<div class="node">
454
<div class="node">
455
<p><hr>
455
<p><hr>
456
Node:&nbsp;<a name="How%20can%20R%20be%20installed%20(Macintosh)">How can R be installed (Macintosh)</a>,
456
Node:&nbsp;<a name="How%20can%20R%20be%20installed%20(Macintosh)">How can R be installed (Macintosh)</a>,
457
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20R%20be%20installed%20(Windows)">How can R be installed (Windows)</a>,
457
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20R%20be%20installed%20(Windows)">How can R be installed (Windows)</a>,
458
Up:&nbsp;<a rel="up" accesskey="u" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>
458
Up:&nbsp;<a rel="up" accesskey="u" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>
459
<br>
459
<br>
460
</div>
460
</div>
461
 
461
 
462
<h3 class="subsection">2.5.3 How can R be installed (Macintosh)</h4>
462
<h3 class="subsection">2.5.3 How can R be installed (Macintosh)</h4>
463
 
463
 
464
<p>The <code>bin/macosx</code> directory of a <small>CRAN</small> site contains a standard
464
<p>The <code>bin/macosx</code> directory of a <small>CRAN</small> site contains a standard
465
Apple installer package named <code>RAqua.pkg.sit</code> compressed in Aladdin
465
Apple installer package named <code>RAqua.pkg.sit</code> compressed in Aladdin
466
Stuffit format.  Once downloaded, uncompressed and executed, the
466
Stuffit format.  Once downloaded, uncompressed and executed, the
467
installer will install the current non-developer release of R.  RAqua is
467
installer will install the current non-developer release of R.  RAqua is
468
a native MacOSX Darwin version of R with an Aqua GUI.  Inside
468
a native MacOSX Darwin version of R with an Aqua GUI.  Inside
469
<code>bin/macosx/</code><var>x</var><code>.</code><var>y</var><code></code> there are prebuilt binary packages to
469
<code>bin/macosx/</code><var>x</var><code>.</code><var>y</var><code></code> there are prebuilt binary packages to
470
be used with RAqua corresponding to the "<var>x</var>.<var>y</var>" release of
470
be used with RAqua corresponding to the "<var>x</var>.<var>y</var>" release of
471
R. The installation of these packages is available through the
471
R. The installation of these packages is available through the
472
"Package" menu of the RAqua GUI.  This port of R for MacOSX is
472
"Package" menu of the RAqua GUI.  This port of R for MacOSX is
473
maintained by <a href="mailto:Stefano.Iacus@R-project.org">Stefano Iacus</a>.  The
473
maintained by <a href="mailto:Stefano.Iacus@R-project.org">Stefano Iacus</a>.  The
474
<a href="http://cran.r-project.org/bin/macosx/RAqua-FAQ.html">"R for Macintosh <small>FAQ</small>/DOC"</a> has more details.
474
<a href="http://cran.r-project.org/bin/macosx/RAqua-FAQ.html">"R for Macintosh <small>FAQ</small>/DOC"</a> has more details.
475
 
475
 
476
   <p>The <code>bin/macos</code> directory of a <small>CRAN</small> site contains bin-hexed
476
   <p>The <code>bin/macos</code> directory of a <small>CRAN</small> site contains bin-hexed
477
(<code>hqx</code>) and stuffit (<code>sit</code>) archives for a base distribution
477
(<code>hqx</code>) and stuffit (<code>sit</code>) archives for a base distribution
478
and a large number of add-on packages of R 1.7.1 to run under MacOS 8.6
478
and a large number of add-on packages of R 1.7.1 to run under MacOS 8.6
479
to MacOS 9.2.2.  This port of R for Macintosh is no longer supported.
479
to MacOS 9.2.2.  This port of R for Macintosh is no longer supported.
480
 
480
 
481
<div class="node">
481
<div class="node">
482
<p><hr>
482
<p><hr>
483
Node:&nbsp;<a name="Are%20there%20Unix%20binaries%20for%20R%3f">Are there Unix binaries for R?</a>,
483
Node:&nbsp;<a name="Are%20there%20Unix%20binaries%20for%20R%3f">Are there Unix binaries for R?</a>,
484
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>,
484
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>,
485
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>,
485
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>,
486
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
486
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
487
<br>
487
<br>
488
</div>
488
</div>
489
 
489
 
490
<h3 class="section">2.6 Are there Unix binaries for R?</h3>
490
<h3 class="section">2.6 Are there Unix binaries for R?</h3>
491
 
491
 
492
<p>The <code>bin/linux</code> directory of a <small>CRAN</small> site contains Debian
492
<p>The <code>bin/linux</code> directory of a <small>CRAN</small> site contains Debian
493
stable/testing/unstable packages for the i386 platform (now part of the
493
stable/testing/unstable packages for the i386 platform (now part of the
494
Debian distribution and maintained by Dirk Eddelbuettel), Mandrake
494
Debian distribution and maintained by Dirk Eddelbuettel), Mandrake
495
9.0/9.1 i386 packages by Michele Alzetta, Red Hat 7.x/8.x/9 i386
495
9.0/9.1 i386 packages by Michele Alzetta, Red Hat 7.x/8.x/9 i386
496
packages by Martyn Plummer, SuSE 7.3/8.0/8.1/8.2/9.0 i386 packages by
496
packages by Martyn Plummer, SuSE 7.3/8.0/8.1/8.2/9.0 i386 packages by
497
Detlef Steuer, and VineLinux 2.6 i386 packages by Susunu Tanimura.
497
Detlef Steuer, and VineLinux 2.6 i386 packages by Susunu Tanimura.
498
 
498
 
499
   <p>The Debian packages can be accessed through APT, the Debian package
499
   <p>The Debian packages can be accessed through APT, the Debian package
500
maintenance tool.  Simply add the line
500
maintenance tool.  Simply add the line
501
 
501
 
502
<pre class="example">     deb http://cran.R-project.org/bin/linux/debian <var>distribution</var> main
502
<pre class="example">     deb http://cran.R-project.org/bin/linux/debian <var>distribution</var> main
503
     </pre>
503
     </pre>
504
 
504
 
505
<p>(where <var>distribution</var> is either <code>stable</code> or <code>testing</code>;
505
<p>(where <var>distribution</var> is either <code>stable</code> or <code>testing</code>;
506
feel free to use a <small>CRAN</small> mirror instead of the master) to the file
506
feel free to use a <small>CRAN</small> mirror instead of the master) to the file
507
<code>/etc/apt/sources.list</code>.  Once you have added that line the
507
<code>/etc/apt/sources.list</code>.  Once you have added that line the
508
programs <code>apt-get</code>, <code>apt-cache</code>, and <code>dselect</code>
508
programs <code>apt-get</code>, <code>apt-cache</code>, and <code>dselect</code>
509
(using the apt access method) will automatically detect and install
509
(using the apt access method) will automatically detect and install
510
updates of the R packages.
510
updates of the R packages.
511
 
511
 
512
   <p>No other binary distributions are currently publically available.
512
   <p>No other binary distributions are currently publically available.
513
 
513
 
514
<div class="node">
514
<div class="node">
515
<p><hr>
515
<p><hr>
516
Node:&nbsp;<a name="What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>,
516
Node:&nbsp;<a name="What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>,
517
Next:&nbsp;<a rel="next" accesskey="n" href="#Citing%20R">Citing R</a>,
517
Next:&nbsp;<a rel="next" accesskey="n" href="#Citing%20R">Citing R</a>,
518
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Are%20there%20Unix%20binaries%20for%20R%3f">Are there Unix binaries for R?</a>,
518
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Are%20there%20Unix%20binaries%20for%20R%3f">Are there Unix binaries for R?</a>,
519
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
519
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
520
<br>
520
<br>
521
</div>
521
</div>
522
 
522
 
523
<h3 class="section">2.7 What documentation exists for R?</h3>
523
<h3 class="section">2.7 What documentation exists for R?</h3>
524
 
524
 
525
<p>Online documentation for most of the functions and variables in R
525
<p>Online documentation for most of the functions and variables in R
526
exists, and can be printed on-screen by typing <kbd>help(</kbd><var>name</var><kbd>)</kbd>
526
exists, and can be printed on-screen by typing <kbd>help(</kbd><var>name</var><kbd>)</kbd>
527
(or <kbd>?</kbd><var>name</var><kbd></kbd>) at the R prompt, where <var>name</var> is the name of
527
(or <kbd>?</kbd><var>name</var><kbd></kbd>) at the R prompt, where <var>name</var> is the name of
528
the topic help is sought for.  (In the case of unary and binary
528
the topic help is sought for.  (In the case of unary and binary
529
operators and control-flow special forms, the name may need to be be
529
operators and control-flow special forms, the name may need to be be
530
quoted.)
530
quoted.)
531
 
531
 
532
   <p>This documentation can also be made available as one reference manual
532
   <p>This documentation can also be made available as one reference manual
533
for on-line reading in <small>HTML</small> and PDF formats, and as hardcopy via
533
for on-line reading in <small>HTML</small> and PDF formats, and as hardcopy via
534
LaTeX, see <a href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>.  An up-to-date <small>HTML</small>
534
LaTeX, see <a href="#How%20can%20R%20be%20installed%3f">How can R be installed?</a>.  An up-to-date <small>HTML</small>
535
version is always available for web browsing at
535
version is always available for web browsing at
536
<a href="http://stat.ethz.ch/R-manual/">http://stat.ethz.ch/R-manual/</a>.
536
<a href="http://stat.ethz.ch/R-manual/">http://stat.ethz.ch/R-manual/</a>.
537
 
537
 
538
   <p>The R distribution also comes with the following manuals.
538
   <p>The R distribution also comes with the following manuals.
539
 
539
 
540
     <ul>
540
     <ul>
541
<li>"An Introduction to R" (<code>R-intro</code>)
541
<li>"An Introduction to R" (<code>R-intro</code>)
542
includes information on data types, programming elements, statistical
542
includes information on data types, programming elements, statistical
543
modeling and graphics.  This document is based on the "Notes on
543
modeling and graphics.  This document is based on the "Notes on
544
<small>S-PLUS</small>" by Bill Venables and David Smith. 
544
<small>S-PLUS</small>" by Bill Venables and David Smith. 
545
<li>"Writing R Extensions" (<code>R-exts</code>)
545
<li>"Writing R Extensions" (<code>R-exts</code>)
546
currently describes the process of creating R add-on packages, writing R
546
currently describes the process of creating R add-on packages, writing R
547
documentation, R's system and foreign language interfaces, and the R
547
documentation, R's system and foreign language interfaces, and the R
548
<small>API</small>. 
548
<small>API</small>. 
549
<li>"R Data Import/Export" (<code>R-data</code>)
549
<li>"R Data Import/Export" (<code>R-data</code>)
550
is a guide to importing and exporting data to and from R. 
550
is a guide to importing and exporting data to and from R. 
551
<li>"The R Language Definition" (<code>R-lang</code>),
551
<li>"The R Language Definition" (<code>R-lang</code>),
552
a first version of the "Kernighan &amp; Ritchie of R", explains
552
a first version of the "Kernighan &amp; Ritchie of R", explains
553
evaluation, parsing, object oriented programming, computing on the
553
evaluation, parsing, object oriented programming, computing on the
554
language, and so forth. 
554
language, and so forth. 
555
<li>"R Installation and Administration" (<code>R-admin</code>). 
555
<li>"R Installation and Administration" (<code>R-admin</code>). 
556
</ul>
556
</ul>
557
 
557
 
558
   <p>Books on R include
558
   <p>Books on R include
559
 
559
 
560
   <blockquote>
560
   <blockquote>
561
P. Dalgaard (2002), "Introductory Statistics with R", Springer: New
561
P. Dalgaard (2002), "Introductory Statistics with R", Springer: New
562
York, ISBN 0-387-95475-9.
562
York, ISBN 0-387-95475-9.
563
 
563
 
564
        <p>J. Fox (2002), "An R and <small>S-PLUS</small> Companion to Applied Regression",
564
        <p>J. Fox (2002), "An R and <small>S-PLUS</small> Companion to Applied Regression",
565
Sage Publications, ISBN 0-761-92280-6 (softcover) or 0-761-92279-2
565
Sage Publications, ISBN 0-761-92280-6 (softcover) or 0-761-92279-2
566
(hardcover),
566
(hardcover),
567
<a href="http://socserv.socsci.mcmaster.ca/jfox/Books/Companion/">http://socserv.socsci.mcmaster.ca/jfox/Books/Companion/</a>.
567
<a href="http://socserv.socsci.mcmaster.ca/jfox/Books/Companion/">http://socserv.socsci.mcmaster.ca/jfox/Books/Companion/</a>.
568
 
568
 
569
        <p>J. Maindonald and J. Braun (2003), "Data Analysis and Graphics Using R:
569
        <p>J. Maindonald and J. Braun (2003), "Data Analysis and Graphics Using R:
570
An Example-Based Approach", Cambridge University Press, ISBN
570
An Example-Based Approach", Cambridge University Press, ISBN
571
0-521-81336-0, <a href="http://wwwmaths.anu.edu.au/~johnm/">http://wwwmaths.anu.edu.au/~johnm/</a>.
571
0-521-81336-0, <a href="http://wwwmaths.anu.edu.au/~johnm/">http://wwwmaths.anu.edu.au/~johnm/</a>.
572
 
572
 
573
        <p>S. M. Iacus and G. Masarotto (2002), "Laboratorio di statistica con R
573
        <p>S. M. Iacus and G. Masarotto (2002), "Laboratorio di statistica con R
574
", McGraw-Hill, ISBN 88-386-6084-0 (in Italian). 
574
", McGraw-Hill, ISBN 88-386-6084-0 (in Italian). 
575
</blockquote>
575
</blockquote>
576
 
576
 
577
<p>The book
577
<p>The book
578
 
578
 
579
   <blockquote>
579
   <blockquote>
580
W. N. Venables and B. D. Ripley (2002), "Modern Applied Statistics with
580
W. N. Venables and B. D. Ripley (2002), "Modern Applied Statistics with
581
S.  Fourth Edition".  Springer, ISBN 0-387-95457-0
581
S.  Fourth Edition".  Springer, ISBN 0-387-95457-0
582
</blockquote>
582
</blockquote>
583
 
583
 
584
<p>has a home page at <a href="http://www.stats.ox.ac.uk/pub/MASS4/">http://www.stats.ox.ac.uk/pub/MASS4/</a> providing
584
<p>has a home page at <a href="http://www.stats.ox.ac.uk/pub/MASS4/">http://www.stats.ox.ac.uk/pub/MASS4/</a> providing
585
additional material.  Its companion is
585
additional material.  Its companion is
586
 
586
 
587
   <blockquote>
587
   <blockquote>
588
W. N. Venables and B. D. Ripley (2000), "S Programming".  Springer,
588
W. N. Venables and B. D. Ripley (2000), "S Programming".  Springer,
589
ISBN 0-387-98966-8
589
ISBN 0-387-98966-8
590
</blockquote>
590
</blockquote>
591
 
591
 
592
<p>and provides an in-depth guide to writing software in the S language
592
<p>and provides an in-depth guide to writing software in the S language
593
which forms the basis of both the commercial <small>S-PLUS</small> and the Open
593
which forms the basis of both the commercial <small>S-PLUS</small> and the Open
594
Source R data analysis software systems.  See
594
Source R data analysis software systems.  See
595
<a href="http://www.stats.ox.ac.uk/pub/MASS3/Sprog/">http://www.stats.ox.ac.uk/pub/MASS3/Sprog/</a> for more information.
595
<a href="http://www.stats.ox.ac.uk/pub/MASS3/Sprog/">http://www.stats.ox.ac.uk/pub/MASS3/Sprog/</a> for more information.
596
 
596
 
597
   <p>In addition to material written specifically or explicitly for R,
597
   <p>In addition to material written specifically or explicitly for R,
598
documentation for S/<small>S-PLUS</small> (see <a href="#R%20and%20S">R and S</a>) can be used in
598
documentation for S/<small>S-PLUS</small> (see <a href="#R%20and%20S">R and S</a>) can be used in
599
combination with this <small>FAQ</small> (see <a href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>).  Introductory books include
599
combination with this <small>FAQ</small> (see <a href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>).  Introductory books include
600
 
600
 
601
   <blockquote>
601
   <blockquote>
602
P. Spector (1994), "An introduction to S and <small>S-PLUS</small>", Duxbury Press.
602
P. Spector (1994), "An introduction to S and <small>S-PLUS</small>", Duxbury Press.
603
 
603
 
604
        <p>A. Krause and M. Olsen (2002), "The Basics of <small>S-PLUS</small>" (Third
604
        <p>A. Krause and M. Olsen (2002), "The Basics of <small>S-PLUS</small>" (Third
605
Edition).  Springer, ISBN 0-387-95456-2
605
Edition).  Springer, ISBN 0-387-95456-2
606
</blockquote>
606
</blockquote>
607
 
607
 
608
   <p>The book
608
   <p>The book
609
 
609
 
610
   <blockquote>
610
   <blockquote>
611
J. C. Pinheiro and D. M. Bates (2000), "Mixed-Effects Models in S and
611
J. C. Pinheiro and D. M. Bates (2000), "Mixed-Effects Models in S and
612
<small>S-PLUS</small>", Springer, ISBN 0-387-98957-0
612
<small>S-PLUS</small>", Springer, ISBN 0-387-98957-0
613
</blockquote>
613
</blockquote>
614
 
614
 
615
<p>provides a comprehensive guide to the use of the <strong>nlme</strong> package
615
<p>provides a comprehensive guide to the use of the <strong>nlme</strong> package
616
for linear and nonlinear mixed-effects models.  This has a home page at
616
for linear and nonlinear mixed-effects models.  This has a home page at
617
<a href="http://nlme.stat.wisc.edu/MEMSS/">http://nlme.stat.wisc.edu/MEMSS/</a>.
617
<a href="http://nlme.stat.wisc.edu/MEMSS/">http://nlme.stat.wisc.edu/MEMSS/</a>.
618
 
618
 
619
   <p>As an example of how R can be used in teaching an advanced introductory
619
   <p>As an example of how R can be used in teaching an advanced introductory
620
statistics course, see
620
statistics course, see
621
 
621
 
622
   <blockquote>
622
   <blockquote>
623
D. Nolan and T. Speed (2000), "Stat Labs: Mathematical Statistics
623
D. Nolan and T. Speed (2000), "Stat Labs: Mathematical Statistics
624
Through Applications", Springer Texts in Statistics, ISBN
624
Through Applications", Springer Texts in Statistics, ISBN
625
0-387-98974-9
625
0-387-98974-9
626
</blockquote>
626
</blockquote>
627
 
627
 
628
<p>This integrates theory of statistics with the practice of statistics
628
<p>This integrates theory of statistics with the practice of statistics
629
through a collection of case studies ("labs"), and uses R to analyze
629
through a collection of case studies ("labs"), and uses R to analyze
630
the data.  More information can be found at
630
the data.  More information can be found at
631
<a href="http://www.stat.Berkeley.EDU/users/statlabs/">http://www.stat.Berkeley.EDU/users/statlabs/</a>.
631
<a href="http://www.stat.Berkeley.EDU/users/statlabs/">http://www.stat.Berkeley.EDU/users/statlabs/</a>.
632
 
632
 
633
   <p>Last, but not least, Ross' and Robert's experience in designing and
633
   <p>Last, but not least, Ross' and Robert's experience in designing and
634
implementing R is described in Ihaka &amp; Gentleman (1996), "R: A Language
634
implementing R is described in Ihaka &amp; Gentleman (1996), "R: A Language
635
for Data Analysis and Graphics",
635
for Data Analysis and Graphics",
636
<a href="http://www.amstat.org/publications/jcgs/"><em>Journal of Computational and Graphical Statistics</em></a>, <strong>5</strong>, 299-314.
636
<a href="http://www.amstat.org/publications/jcgs/"><em>Journal of Computational and Graphical Statistics</em></a>, <strong>5</strong>, 299-314.
637
 
637
 
638
   <p>An annotated bibliography (BibTeX format) of R-related publications
638
   <p>An annotated bibliography (BibTeX format) of R-related publications
639
which includes most of the above references can be found at
639
which includes most of the above references can be found at
640
 
640
 
641
<pre class="display">     <a href="http://www.R-project.org/doc/bib/R.bib">http://www.R-project.org/doc/bib/R.bib</a>
641
<pre class="display">     <a href="http://www.R-project.org/doc/bib/R.bib">http://www.R-project.org/doc/bib/R.bib</a>
642
     </pre>
642
     </pre>
643
 
643
 
644
<div class="node">
644
<div class="node">
645
<p><hr>
645
<p><hr>
646
Node:&nbsp;<a name="Citing%20R">Citing R</a>,
646
Node:&nbsp;<a name="Citing%20R">Citing R</a>,
647
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20mailing%20lists%20exist%20for%20R%3f">What mailing lists exist for R?</a>,
647
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20mailing%20lists%20exist%20for%20R%3f">What mailing lists exist for R?</a>,
648
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>,
648
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>,
649
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
649
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
650
<br>
650
<br>
651
</div>
651
</div>
652
 
652
 
653
<h3 class="section">2.8 Citing R</h3>
653
<h3 class="section">2.8 Citing R</h3>
654
 
654
 
655
<p>To cite R in publications, use
655
<p>To cite R in publications, use
656
 
656
 
657
<pre class="example">     @Manual{,
657
<pre class="example">     @Manual{,
658
       title        = {R: A language and environment for statistical
658
       title        = {R: A language and environment for statistical
659
                       computing},
659
                       computing},
660
       author       = {{R Development Core Team}},
660
       author       = {{R Development Core Team}},
661
       organization = {R Foundation for Statistical Computing},
661
       organization = {R Foundation for Statistical Computing},
662
       address      = {Vienna, Austria},
662
       address      = {Vienna, Austria},
663
       year         = 2003,
663
       year         = 2003,
664
       note         = {ISBN 3-900051-00-3},
664
       note         = {ISBN 3-900051-00-3},
665
       url          = {http://www.R-project.org}
665
       url          = {http://www.R-project.org}
666
     }
666
     }
667
     </pre>
667
     </pre>
668
 
668
 
669
<div class="node">
669
<div class="node">
670
<p><hr>
670
<p><hr>
671
Node:&nbsp;<a name="What%20mailing%20lists%20exist%20for%20R%3f">What mailing lists exist for R?</a>,
671
Node:&nbsp;<a name="What%20mailing%20lists%20exist%20for%20R%3f">What mailing lists exist for R?</a>,
672
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20is%20CRAN%3f">What is CRAN?</a>,
672
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20is%20CRAN%3f">What is CRAN?</a>,
673
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Citing%20R">Citing R</a>,
673
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Citing%20R">Citing R</a>,
674
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
674
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
675
<br>
675
<br>
676
</div>
676
</div>
677
 
677
 
678
<h3 class="section">2.9 What mailing lists exist for R?</h3>
678
<h3 class="section">2.9 What mailing lists exist for R?</h3>
679
 
679
 
680
<p>Thanks to <a href="mailto:Martin.Maechler@R-project.org">Martin Maechler</a>, there
680
<p>Thanks to <a href="mailto:Martin.Maechler@R-project.org">Martin Maechler</a>, there
681
are four mailing lists devoted to R.
681
are four mailing lists devoted to R.
682
 
682
 
683
     <dl>
683
     <dl>
684
<dt><code>R-announce</code>
684
<dt><code>R-announce</code>
685
     <dd>A moderated list for announcements about the development of R and the
685
     <dd>A moderated list for announcements about the development of R and the
686
availability of new code. 
686
availability of new code. 
687
<br><dt><code>R-packages</code>
687
<br><dt><code>R-packages</code>
688
     <dd>A moderated list for announcements on the availability of new or
688
     <dd>A moderated list for announcements on the availability of new or
689
enhanced contributed packages. 
689
enhanced contributed packages. 
690
<br><dt><code>R-help</code>
690
<br><dt><code>R-help</code>
691
     <dd>The `main' R mailing list, for discussion about problems and solutions
691
     <dd>The `main' R mailing list, for discussion about problems and solutions
692
using R, announcements (not covered by `R-announce' and `R-packages')
692
using R, announcements (not covered by `R-announce' and `R-packages')
693
about the development of R and the availability of new code,
693
about the development of R and the availability of new code,
694
enhancements and patches to the source code and documentation of R,
694
enhancements and patches to the source code and documentation of R,
695
comparison and compatibility with S and <small>S-PLUS</small>, and for the posting of
695
comparison and compatibility with S and <small>S-PLUS</small>, and for the posting of
696
nice examples and benchmarks. 
696
nice examples and benchmarks. 
697
<br><dt><code>R-devel</code>
697
<br><dt><code>R-devel</code>
698
     <dd>This list is for discussions about the future of R and pre-testing of
698
     <dd>This list is for discussions about the future of R and pre-testing of
699
new versions.  It is meant for those who maintain an active position in
699
new versions.  It is meant for those who maintain an active position in
700
the development of R. 
700
the development of R. 
701
</dl>
701
</dl>
702
 
702
 
703
<p>Note that the R-announce and R-packages lists are gatewayed into R-help. 
703
<p>Note that the R-announce and R-packages lists are gatewayed into R-help. 
704
Hence, you should subscribe to either of them only in case you are not
704
Hence, you should subscribe to either of them only in case you are not
705
subscribed to R-help.
705
subscribed to R-help.
706
 
706
 
707
   <p>Send email to <a href="mailto:R-help@lists.R-project.org">R-help@lists.R-project.org</a> to reach everyone on
707
   <p>Send email to <a href="mailto:R-help@lists.R-project.org">R-help@lists.R-project.org</a> to reach everyone on
708
the R-help mailing list.  To subscribe (or unsubscribe) to this list
708
the R-help mailing list.  To subscribe (or unsubscribe) to this list
709
send <code>subscribe</code> (or <code>unsubscribe</code>) in the <em>body</em> of the
709
send <code>subscribe</code> (or <code>unsubscribe</code>) in the <em>body</em> of the
710
message (not in the subject!) to
710
message (not in the subject!) to
711
<a href="mailto:R-help-request@lists.R-project.org">R-help-request@lists.R-project.org</a>.  Information about the list
711
<a href="mailto:R-help-request@lists.R-project.org">R-help-request@lists.R-project.org</a>.  Information about the list
712
can be obtained by sending an email with <code>info</code> as its contents to
712
can be obtained by sending an email with <code>info</code> as its contents to
713
<a href="mailto:R-help-request@lists.R-project.org">R-help-request@lists.R-project.org</a>.
713
<a href="mailto:R-help-request@lists.R-project.org">R-help-request@lists.R-project.org</a>.
714
 
714
 
715
   <p>Subscription and posting to the other lists is done analogously, with
715
   <p>Subscription and posting to the other lists is done analogously, with
716
<code>R-help</code> replaced by <code>R-announce</code>, <code>R-packages</code>, and
716
<code>R-help</code> replaced by <code>R-announce</code>, <code>R-packages</code>, and
717
<code>R-devel</code>, respectively.
717
<code>R-devel</code>, respectively.
718
 
718
 
719
   <p>Subscriptions to the R-help and R-devel mailing lists are also available
719
   <p>Subscriptions to the R-help and R-devel mailing lists are also available
720
in digest (plain or MIME) format, see the <code>doc/html/mail.html</code> file
720
in digest (plain or MIME) format, see the <code>doc/html/mail.html</code> file
721
in <small>CRAN</small> for more information.
721
in <small>CRAN</small> for more information.
722
 
722
 
723
   <p>It is recommended that you send mail to R-help rather than only to the R
723
   <p>It is recommended that you send mail to R-help rather than only to the R
724
Core developers (who are also subscribed to the list, of course).  This
724
Core developers (who are also subscribed to the list, of course).  This
725
may save them precious time they can use for constantly improving R, and
725
may save them precious time they can use for constantly improving R, and
726
will typically also result in much quicker feedback for yourself.
726
will typically also result in much quicker feedback for yourself.
727
 
727
 
728
   <p>Of course, in the case of bug reports it would be very helpful to have
728
   <p>Of course, in the case of bug reports it would be very helpful to have
729
code which reliably reproduces the problem.  Also, make sure that you
729
code which reliably reproduces the problem.  Also, make sure that you
730
include information on the system and version of R being used.  See
730
include information on the system and version of R being used.  See
731
<a href="#R%20Bugs">R Bugs</a> for more details.
731
<a href="#R%20Bugs">R Bugs</a> for more details.
732
 
732
 
733
   <p>Archives of the above three mailing lists are made available on the net
733
   <p>Archives of the above three mailing lists are made available on the net
734
in a monthly schedule via the <code>doc/html/mail.html</code> file in <small>CRAN</small>. 
734
in a monthly schedule via the <code>doc/html/mail.html</code> file in <small>CRAN</small>. 
735
Searchable archives of the lists are available via
735
Searchable archives of the lists are available via
736
<a href="http://maths.newcastle.edu.au/~rking/R/">http://maths.newcastle.edu.au/~rking/R/</a>.
736
<a href="http://maths.newcastle.edu.au/~rking/R/">http://maths.newcastle.edu.au/~rking/R/</a>.
737
 
737
 
738
   <p>The R Core Team can be reached at <a href="mailto:R-core@lists.R-project.org">R-core@lists.R-project.org</a>
738
   <p>The R Core Team can be reached at <a href="mailto:R-core@lists.R-project.org">R-core@lists.R-project.org</a>
739
for comments and reports.
739
for comments and reports.
740
 
740
 
741
<div class="node">
741
<div class="node">
742
<p><hr>
742
<p><hr>
743
Node:&nbsp;<a name="What%20is%20CRAN%3f">What is CRAN?</a>,
743
Node:&nbsp;<a name="What%20is%20CRAN%3f">What is CRAN?</a>,
744
Next:&nbsp;<a rel="next" accesskey="n" href="#Can%20I%20use%20R%20for%20commercial%20purposes%3f">Can I use R for commercial purposes?</a>,
744
Next:&nbsp;<a rel="next" accesskey="n" href="#Can%20I%20use%20R%20for%20commercial%20purposes%3f">Can I use R for commercial purposes?</a>,
745
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20mailing%20lists%20exist%20for%20R%3f">What mailing lists exist for R?</a>,
745
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20mailing%20lists%20exist%20for%20R%3f">What mailing lists exist for R?</a>,
746
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
746
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
747
<br>
747
<br>
748
</div>
748
</div>
749
 
749
 
750
<h3 class="section">2.10 What is <small>CRAN</small>?</h3>
750
<h3 class="section">2.10 What is <small>CRAN</small>?</h3>
751
 
751
 
752
<p>The "Comprehensive R Archive Network" (<small>CRAN</small>) is a collection of
752
<p>The "Comprehensive R Archive Network" (<small>CRAN</small>) is a collection of
753
sites which carry identical material, consisting of the R
753
sites which carry identical material, consisting of the R
754
distribution(s), the contributed extensions, documentation for R, and
754
distribution(s), the contributed extensions, documentation for R, and
755
binaries.
755
binaries.
756
 
756
 
757
   <p>The <small>CRAN</small> master site at TU Wien, Austria, can be found at the
757
   <p>The <small>CRAN</small> master site at TU Wien, Austria, can be found at the
758
<small>URL</small>
758
<small>URL</small>
759
 
759
 
760
   <blockquote>
760
   <blockquote>
761
<a href="http://cran.R-project.org/">http://cran.R-project.org/</a>
761
<a href="http://cran.R-project.org/">http://cran.R-project.org/</a>
762
</blockquote>
762
</blockquote>
763
 
763
 
764
<p>and is currently being mirrored daily at
764
<p>and is currently being mirrored daily at
765
 
765
 
766
   <blockquote>
766
   <blockquote>
767
        <p><table><tr align="left"><td valign="top"><a href="http://cran.at.R-project.org/">http://cran.at.R-project.org/</a>
767
        <p><table><tr align="left"><td valign="top"><a href="http://cran.at.R-project.org/">http://cran.at.R-project.org/</a>
768
</td><td valign="top">(TU Wien, Austria)
768
</td><td valign="top">(TU Wien, Austria)
769
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.au.R-project.org/">http://cran.au.R-project.org/</a>
769
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.au.R-project.org/">http://cran.au.R-project.org/</a>
770
</td><td valign="top">(PlanetMirror, Australia)
770
</td><td valign="top">(PlanetMirror, Australia)
771
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.br.R-project.org/">http://cran.br.R-project.org/</a>
771
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.br.R-project.org/">http://cran.br.R-project.org/</a>
772
</td><td valign="top">(Universidade Federal de Paran&aacute;, Brazil)
772
</td><td valign="top">(Universidade Federal de Paran&aacute;, Brazil)
773
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.ch.R-project.org/">http://cran.ch.R-project.org/</a>
773
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.ch.R-project.org/">http://cran.ch.R-project.org/</a>
774
</td><td valign="top">(ETH Z&uuml;rich, Switzerland)
774
</td><td valign="top">(ETH Z&uuml;rich, Switzerland)
775
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.de.R-project.org/">http://cran.de.R-project.org/</a>
775
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.de.R-project.org/">http://cran.de.R-project.org/</a>
776
</td><td valign="top">(APP, Germany)
776
</td><td valign="top">(APP, Germany)
777
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.dk.R-project.org/">http://cran.dk.R-project.org/</a>
777
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.dk.R-project.org/">http://cran.dk.R-project.org/</a>
778
</td><td valign="top">(SunSITE, Denmark)
778
</td><td valign="top">(SunSITE, Denmark)
779
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.es.R-project.org/">http://cran.es.R-project.org/</a>
779
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.es.R-project.org/">http://cran.es.R-project.org/</a>
780
</td><td valign="top">(Spanish National Research Network, Madrid, Spain)
780
</td><td valign="top">(Spanish National Research Network, Madrid, Spain)
781
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.hu.R-project.org/">http://cran.hu.R-project.org/</a>
781
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.hu.R-project.org/">http://cran.hu.R-project.org/</a>
782
</td><td valign="top">(Semmelweis U, Hungary)
782
</td><td valign="top">(Semmelweis U, Hungary)
783
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.uk.R-project.org/">http://cran.uk.R-project.org/</a>
783
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.uk.R-project.org/">http://cran.uk.R-project.org/</a>
784
</td><td valign="top">(U of Bristol, United Kingdom)
784
</td><td valign="top">(U of Bristol, United Kingdom)
785
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.us.R-project.org/">http://cran.us.R-project.org/</a>
785
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.us.R-project.org/">http://cran.us.R-project.org/</a>
786
</td><td valign="top">(U of Wisconsin, USA)
786
</td><td valign="top">(U of Wisconsin, USA)
787
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.za.R-project.org/">http://cran.za.R-project.org/</a>
787
<br></td></tr><tr align="left"><td valign="top"><a href="http://cran.za.R-project.org/">http://cran.za.R-project.org/</a>
788
</td><td valign="top">(Rhodes U, South Africa)
788
</td><td valign="top">(Rhodes U, South Africa)
789
        <br></td></tr></table>
789
        <br></td></tr></table>
790
</blockquote>
790
</blockquote>
791
 
791
 
792
<p>Please use the <small>CRAN</small> site closest to you to reduce network load.
792
<p>Please use the <small>CRAN</small> site closest to you to reduce network load.
793
 
793
 
794
   <p>From <small>CRAN</small>, you can obtain the latest official release of R, daily
794
   <p>From <small>CRAN</small>, you can obtain the latest official release of R, daily
795
snapshots of R (copies of the current CVS trees), as gzipped and bzipped
795
snapshots of R (copies of the current CVS trees), as gzipped and bzipped
796
tar files, a wealth of additional contributed code, as well as prebuilt
796
tar files, a wealth of additional contributed code, as well as prebuilt
797
binaries for various operating systems (Linux, MacOS Classic, MacOS X,
797
binaries for various operating systems (Linux, MacOS Classic, MacOS X,
798
and MS Windows).  <small>CRAN</small> also provides access to documentation on R,
798
and MS Windows).  <small>CRAN</small> also provides access to documentation on R,
799
existing mailing lists and the R Bug Tracking system.
799
existing mailing lists and the R Bug Tracking system.
800
 
800
 
801
   <p>To "submit" to <small>CRAN</small>, simply upload to
801
   <p>To "submit" to <small>CRAN</small>, simply upload to
802
<a href="ftp://cran.R-project.org/incoming/">ftp://cran.R-project.org/incoming/</a> and send an email to
802
<a href="ftp://cran.R-project.org/incoming/">ftp://cran.R-project.org/incoming/</a> and send an email to
803
<a href="mailto:cran@R-project.org">cran@R-project.org</a>.  Note that <small>CRAN</small> generally does not
803
<a href="mailto:cran@R-project.org">cran@R-project.org</a>.  Note that <small>CRAN</small> generally does not
804
accept submissions of precompiled binaries due to security reasons.
804
accept submissions of precompiled binaries due to security reasons.
805
 
805
 
806
   <blockquote>
806
   <blockquote>
807
<strong>Note:</strong>  It is very important that you indicate the copyright
807
<strong>Note:</strong>  It is very important that you indicate the copyright
808
(license) information (<small>GPL</small>, <small>BSD</small>, Artistic, <small class="dots">...</small>)
808
(license) information (<small>GPL</small>, <small>BSD</small>, Artistic, <small class="dots">...</small>)
809
in your submission. 
809
in your submission. 
810
</blockquote>
810
</blockquote>
811
 
811
 
812
   <p>Please always use the <small>URL</small> of the master site when referring to
812
   <p>Please always use the <small>URL</small> of the master site when referring to
813
<small>CRAN</small>.
813
<small>CRAN</small>.
814
 
814
 
815
<div class="node">
815
<div class="node">
816
<p><hr>
816
<p><hr>
817
Node:&nbsp;<a name="Can%20I%20use%20R%20for%20commercial%20purposes%3f">Can I use R for commercial purposes?</a>,
817
Node:&nbsp;<a name="Can%20I%20use%20R%20for%20commercial%20purposes%3f">Can I use R for commercial purposes?</a>,
818
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20is%20R%20named%20R%3f">Why is R named R?</a>,
818
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20is%20R%20named%20R%3f">Why is R named R?</a>,
819
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20CRAN%3f">What is CRAN?</a>,
819
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20CRAN%3f">What is CRAN?</a>,
820
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
820
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
821
<br>
821
<br>
822
</div>
822
</div>
823
 
823
 
824
<h3 class="section">2.11 Can I use R for commercial purposes?</h3>
824
<h3 class="section">2.11 Can I use R for commercial purposes?</h3>
825
 
825
 
826
<p>R is released under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License (GPL)</a>.  If you have any questions regarding the
826
<p>R is released under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License (GPL)</a>.  If you have any questions regarding the
827
legality of using R in any particular situation you should bring it up
827
legality of using R in any particular situation you should bring it up
828
with your legal counsel.  We are in no position to offer legal advice.
828
with your legal counsel.  We are in no position to offer legal advice.
829
 
829
 
830
   <p>It is the opinion of the R Core Team that one can use R for commercial
830
   <p>It is the opinion of the R Core Team that one can use R for commercial
831
purposes (e.g., in business or in consulting).  The GPL, like all Open
831
purposes (e.g., in business or in consulting).  The GPL, like all Open
832
Source licenses, permits all and any use of the package.  It only
832
Source licenses, permits all and any use of the package.  It only
833
restricts distribution of R or of other programs containing code from R. 
833
restricts distribution of R or of other programs containing code from R. 
834
This is made clear in clause 6 ("No Discrimination Against Fields of
834
This is made clear in clause 6 ("No Discrimination Against Fields of
835
Endeavor") of the <a href="http://www.opensource.org/docs/definition.html">Open Source Definition</a>:
835
Endeavor") of the <a href="http://www.opensource.org/docs/definition.html">Open Source Definition</a>:
836
 
836
 
837
   <blockquote>
837
   <blockquote>
838
The license must not restrict anyone from making use of the program in a
838
The license must not restrict anyone from making use of the program in a
839
specific field of endeavor.  For example, it may not restrict the
839
specific field of endeavor.  For example, it may not restrict the
840
program from being used in a business, or from being used for genetic
840
program from being used in a business, or from being used for genetic
841
research. 
841
research. 
842
</blockquote>
842
</blockquote>
843
 
843
 
844
<p>It is also explicitly stated in clause 0 of the GPL, which says in part
844
<p>It is also explicitly stated in clause 0 of the GPL, which says in part
845
 
845
 
846
   <blockquote>
846
   <blockquote>
847
Activities other than copying, distribution and modification are not
847
Activities other than copying, distribution and modification are not
848
covered by this License; they are outside its scope.  The act of running
848
covered by this License; they are outside its scope.  The act of running
849
the Program is not restricted, and the output from the Program is
849
the Program is not restricted, and the output from the Program is
850
covered only if its contents constitute a work based on the Program. 
850
covered only if its contents constitute a work based on the Program. 
851
</blockquote>
851
</blockquote>
852
 
852
 
853
   <p>Most add-on packages, including all recommended ones, also explicitly
853
   <p>Most add-on packages, including all recommended ones, also explicitly
854
allow commercial use in this way.  A few packages are restricted to
854
allow commercial use in this way.  A few packages are restricted to
855
"non-commercial use"; you should contact the author to clarify whether
855
"non-commercial use"; you should contact the author to clarify whether
856
these may be used or seek the advice of your legal counsel.
856
these may be used or seek the advice of your legal counsel.
857
 
857
 
858
   <p>None of the discussion in this section constitutes legal advice.  The R
858
   <p>None of the discussion in this section constitutes legal advice.  The R
859
Core Team does not provide legal advice under any circumstances.
859
Core Team does not provide legal advice under any circumstances.
860
 
860
 
861
<div class="node">
861
<div class="node">
862
<p><hr>
862
<p><hr>
863
Node:&nbsp;<a name="Why%20is%20R%20named%20R%3f">Why is R named R?</a>,
863
Node:&nbsp;<a name="Why%20is%20R%20named%20R%3f">Why is R named R?</a>,
864
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Can%20I%20use%20R%20for%20commercial%20purposes%3f">Can I use R for commercial purposes?</a>,
864
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Can%20I%20use%20R%20for%20commercial%20purposes%3f">Can I use R for commercial purposes?</a>,
865
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
865
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Basics">R Basics</a>
866
<br>
866
<br>
867
</div>
867
</div>
868
 
868
 
869
<h3 class="section">2.12 Why is R named R?</h3>
869
<h3 class="section">2.12 Why is R named R?</h3>
870
 
870
 
871
<p>The name is partly based on the (first) names of the first two R authors
871
<p>The name is partly based on the (first) names of the first two R authors
872
(Robert Gentleman and Ross Ihaka), and partly a play on the name of the
872
(Robert Gentleman and Ross Ihaka), and partly a play on the name of the
873
Bell Labs language `S' (see <a href="#What%20is%20S%3f">What is S?</a>).
873
Bell Labs language `S' (see <a href="#What%20is%20S%3f">What is S?</a>).
874
 
874
 
875
<div class="node">
875
<div class="node">
876
<p><hr>
876
<p><hr>
877
Node:&nbsp;<a name="R%20and%20S">R and S</a>,
877
Node:&nbsp;<a name="R%20and%20S">R and S</a>,
878
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Web%20Interfaces">R Web Interfaces</a>,
878
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Web%20Interfaces">R Web Interfaces</a>,
879
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Basics">R Basics</a>,
879
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Basics">R Basics</a>,
880
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
880
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
881
<br>
881
<br>
882
</div>
882
</div>
883
 
883
 
884
<h2 class="chapter">3 R and S</h2>
884
<h2 class="chapter">3 R and S</h2>
885
 
885
 
886
<ul class="menu">
886
<ul class="menu">
887
<li><a accesskey="1" href="#What%20is%20S%3f">What is S?</a>: 
887
<li><a accesskey="1" href="#What%20is%20S%3f">What is S?</a>: 
888
<li><a accesskey="2" href="#What%20is%20S-PLUS%3f">What is S-PLUS?</a>: 
888
<li><a accesskey="2" href="#What%20is%20S-PLUS%3f">What is S-PLUS?</a>: 
889
<li><a accesskey="3" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>: 
889
<li><a accesskey="3" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>: 
890
<li><a accesskey="4" href="#Is%20there%20anything%20R%20can%20do%20that%20S-PLUS%20cannot%3f">Is there anything R can do that S-PLUS cannot?</a>: 
890
<li><a accesskey="4" href="#Is%20there%20anything%20R%20can%20do%20that%20S-PLUS%20cannot%3f">Is there anything R can do that S-PLUS cannot?</a>: 
891
<li><a accesskey="5" href="#What%20is%20R-plus%3f">What is R-plus?</a>: 
891
<li><a accesskey="5" href="#What%20is%20R-plus%3f">What is R-plus?</a>: 
892
</ul>
892
</ul>
893
 
893
 
894
<div class="node">
894
<div class="node">
895
<p><hr>
895
<p><hr>
896
Node:&nbsp;<a name="What%20is%20S%3f">What is S?</a>,
896
Node:&nbsp;<a name="What%20is%20S%3f">What is S?</a>,
897
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20is%20S-PLUS%3f">What is S-PLUS?</a>,
897
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20is%20S-PLUS%3f">What is S-PLUS?</a>,
898
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20and%20S">R and S</a>,
898
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20and%20S">R and S</a>,
899
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20S">R and S</a>
899
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20S">R and S</a>
900
<br>
900
<br>
901
</div>
901
</div>
902
 
902
 
903
<h3 class="section">3.1 What is S?</h3>
903
<h3 class="section">3.1 What is S?</h3>
904
 
904
 
905
<p>S is a very high level language and an environment for data analysis and
905
<p>S is a very high level language and an environment for data analysis and
906
graphics.  In 1998, the Association for Computing Machinery
906
graphics.  In 1998, the Association for Computing Machinery
907
(<small>ACM</small>) presented its Software System Award to John M. Chambers,
907
(<small>ACM</small>) presented its Software System Award to John M. Chambers,
908
the principal designer of S, for
908
the principal designer of S, for
909
 
909
 
910
   <blockquote>
910
   <blockquote>
911
the S system, which has forever altered the way people analyze,
911
the S system, which has forever altered the way people analyze,
912
visualize, and manipulate data <small class="dots">...</small>
912
visualize, and manipulate data <small class="dots">...</small>
913
 
913
 
914
        <p>S is an elegant, widely accepted, and enduring software system, with
914
        <p>S is an elegant, widely accepted, and enduring software system, with
915
conceptual integrity, thanks to the insight, taste, and effort of John
915
conceptual integrity, thanks to the insight, taste, and effort of John
916
Chambers. 
916
Chambers. 
917
</blockquote>
917
</blockquote>
918
 
918
 
919
   <p>The evolution of the S language is characterized by four books by John
919
   <p>The evolution of the S language is characterized by four books by John
920
Chambers and coauthors, which are also the primary references for S.
920
Chambers and coauthors, which are also the primary references for S.
921
 
921
 
922
     <ul>
922
     <ul>
923
<li>Richard A. Becker and John M. Chambers (1984), "S.  An Interactive
923
<li>Richard A. Becker and John M. Chambers (1984), "S.  An Interactive
924
Environment for Data Analysis and Graphics," Monterey: Wadsworth and
924
Environment for Data Analysis and Graphics," Monterey: Wadsworth and
925
Brooks/Cole.
925
Brooks/Cole.
926
 
926
 
927
     <p>This is also referred to as the "<em>Brown Book</em>", and of historical
927
     <p>This is also referred to as the "<em>Brown Book</em>", and of historical
928
interest only.
928
interest only.
929
 
929
 
930
     </p><li>Richard A. Becker, John M. Chambers and Allan R. Wilks (1988), "The New
930
     </p><li>Richard A. Becker, John M. Chambers and Allan R. Wilks (1988), "The New
931
S Language," London: Chapman &amp; Hall.
931
S Language," London: Chapman &amp; Hall.
932
 
932
 
933
     <p>This book is often called the "<em>Blue Book</em>", and introduced what
933
     <p>This book is often called the "<em>Blue Book</em>", and introduced what
934
is now known as S version 2.
934
is now known as S version 2.
935
 
935
 
936
     </p><li>John M. Chambers and Trevor J. Hastie (1992), "Statistical Models in
936
     </p><li>John M. Chambers and Trevor J. Hastie (1992), "Statistical Models in
937
S,"  London: Chapman &amp; Hall.
937
S,"  London: Chapman &amp; Hall.
938
 
938
 
939
     <p>This is also called the "<em>White Book</em>", and introduced S version
939
     <p>This is also called the "<em>White Book</em>", and introduced S version
940
3, which added structures to facilitate statistical modeling in S.
940
3, which added structures to facilitate statistical modeling in S.
941
 
941
 
942
     </p><li>John M. Chambers (1998), "Programming with Data," New York: Springer,
942
     </p><li>John M. Chambers (1998), "Programming with Data," New York: Springer,
943
ISBN 0-387-98503-4
943
ISBN 0-387-98503-4
944
(&lt;<code>http://cm.bell-labs.com/cm/ms/departments/sia/Sbook/</code>&gt;).
944
(&lt;<code>http://cm.bell-labs.com/cm/ms/departments/sia/Sbook/</code>&gt;).
945
 
945
 
946
     <p>This "<em>Green Book</em>" describes version 4 of S, a major revision of
946
     <p>This "<em>Green Book</em>" describes version 4 of S, a major revision of
947
S designed by John Chambers to improve its usefulness at every stage of
947
S designed by John Chambers to improve its usefulness at every stage of
948
the programming process. 
948
the programming process. 
949
</ul>
949
</ul>
950
 
950
 
951
   <p>See <a href="http://cm.bell-labs.com/cm/ms/departments/sia/S/history.html">http://cm.bell-labs.com/cm/ms/departments/sia/S/history.html</a>
951
   <p>See <a href="http://cm.bell-labs.com/cm/ms/departments/sia/S/history.html">http://cm.bell-labs.com/cm/ms/departments/sia/S/history.html</a>
952
for further information on "Stages in the Evolution of S".
952
for further information on "Stages in the Evolution of S".
953
 
953
 
954
   <p>There is a huge amount of user-contributed code for S, available at the
954
   <p>There is a huge amount of user-contributed code for S, available at the
955
<a href="http://lib.stat.cmu.edu/S/">S Repository</a> at <small>CMU</small>.
955
<a href="http://lib.stat.cmu.edu/S/">S Repository</a> at <small>CMU</small>.
956
 
956
 
957
<div class="node">
957
<div class="node">
958
<p><hr>
958
<p><hr>
959
Node:&nbsp;<a name="What%20is%20S-PLUS%3f">What is S-PLUS?</a>,
959
Node:&nbsp;<a name="What%20is%20S-PLUS%3f">What is S-PLUS?</a>,
960
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>,
960
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>,
961
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20S%3f">What is S?</a>,
961
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20S%3f">What is S?</a>,
962
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20S">R and S</a>
962
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20S">R and S</a>
963
<br>
963
<br>
964
</div>
964
</div>
965
 
965
 
966
<h3 class="section">3.2 What is <small>S-PLUS</small>?</h3>
966
<h3 class="section">3.2 What is <small>S-PLUS</small>?</h3>
967
 
967
 
968
<p><small>S-PLUS</small> is a value-added version of S sold by Insightful Corporation. 
968
<p><small>S-PLUS</small> is a value-added version of S sold by Insightful Corporation. 
969
Based on the S language, <small>S-PLUS</small> provides functionality in a wide
969
Based on the S language, <small>S-PLUS</small> provides functionality in a wide
970
variety of areas, including robust regression, modern non-parametric
970
variety of areas, including robust regression, modern non-parametric
971
regression, time series, survival analysis, multivariate analysis,
971
regression, time series, survival analysis, multivariate analysis,
972
classical statistical tests, quality control, and graphics drivers. 
972
classical statistical tests, quality control, and graphics drivers. 
973
Add-on modules add additional capabilities for wavelet analysis, spatial
973
Add-on modules add additional capabilities for wavelet analysis, spatial
974
statistics, GARCH models, and design of experiments.
974
statistics, GARCH models, and design of experiments.
975
 
975
 
976
   <p>See the <a href="http://www.insightful.com/products/splus/">Insightful <small>S-PLUS</small> page</a> for further information.
976
   <p>See the <a href="http://www.insightful.com/products/splus/">Insightful <small>S-PLUS</small> page</a> for further information.
977
 
977
 
978
<div class="node">
978
<div class="node">
979
<p><hr>
979
<p><hr>
980
Node:&nbsp;<a name="What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>,
980
Node:&nbsp;<a name="What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>,
981
Next:&nbsp;<a rel="next" accesskey="n" href="#Is%20there%20anything%20R%20can%20do%20that%20S-PLUS%20cannot%3f">Is there anything R can do that S-PLUS cannot?</a>,
981
Next:&nbsp;<a rel="next" accesskey="n" href="#Is%20there%20anything%20R%20can%20do%20that%20S-PLUS%20cannot%3f">Is there anything R can do that S-PLUS cannot?</a>,
982
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20S-PLUS%3f">What is S-PLUS?</a>,
982
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20S-PLUS%3f">What is S-PLUS?</a>,
983
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20S">R and S</a>
983
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20S">R and S</a>
984
<br>
984
<br>
985
</div>
985
</div>
986
 
986
 
987
<h3 class="section">3.3 What are the differences between R and S?</h3>
987
<h3 class="section">3.3 What are the differences between R and S?</h3>
988
 
988
 
989
<p>We can regard S as a language with three current implementations or
989
<p>We can regard S as a language with three current implementations or
990
"engines", the "old S engine" (S version 3; <small>S-PLUS</small> 3.x and 4.x),
990
"engines", the "old S engine" (S version 3; <small>S-PLUS</small> 3.x and 4.x),
991
the "new S engine" (S version 4; <small>S-PLUS</small> 5.x and above), and R. 
991
the "new S engine" (S version 4; <small>S-PLUS</small> 5.x and above), and R. 
992
Given this understanding, asking for "the differences between R and S"
992
Given this understanding, asking for "the differences between R and S"
993
really amounts to asking for the specifics of the R implementation of
993
really amounts to asking for the specifics of the R implementation of
994
the S language, i.e., the difference between the R and S <em>engines</em>.
994
the S language, i.e., the difference between the R and S <em>engines</em>.
995
 
995
 
996
   <p>For the remainder of this section, "S" refers to the S engines and not
996
   <p>For the remainder of this section, "S" refers to the S engines and not
997
the S language.
997
the S language.
998
 
998
 
999
<ul class="menu">
999
<ul class="menu">
1000
<li><a accesskey="1" href="#Lexical%20scoping">Lexical scoping</a>: 
1000
<li><a accesskey="1" href="#Lexical%20scoping">Lexical scoping</a>: 
1001
<li><a accesskey="2" href="#Models">Models</a>: 
1001
<li><a accesskey="2" href="#Models">Models</a>: 
1002
<li><a accesskey="3" href="#Others">Others</a>: 
1002
<li><a accesskey="3" href="#Others">Others</a>: 
1003
</ul>
1003
</ul>
1004
 
1004
 
1005
<div class="node">
1005
<div class="node">
1006
<p><hr>
1006
<p><hr>
1007
Node:&nbsp;<a name="Lexical%20scoping">Lexical scoping</a>,
1007
Node:&nbsp;<a name="Lexical%20scoping">Lexical scoping</a>,
1008
Next:&nbsp;<a rel="next" accesskey="n" href="#Models">Models</a>,
1008
Next:&nbsp;<a rel="next" accesskey="n" href="#Models">Models</a>,
1009
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>,
1009
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>,
1010
Up:&nbsp;<a rel="up" accesskey="u" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>
1010
Up:&nbsp;<a rel="up" accesskey="u" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>
1011
<br>
1011
<br>
1012
</div>
1012
</div>
1013
 
1013
 
1014
<h3 class="subsection">3.3.1 Lexical scoping</h4>
1014
<h3 class="subsection">3.3.1 Lexical scoping</h4>
1015
 
1015
 
1016
<p>Contrary to other implementations of the S language, R has adopted the
1016
<p>Contrary to other implementations of the S language, R has adopted the
1017
evaluation model of Scheme.
1017
evaluation model of Scheme.
1018
 
1018
 
1019
   <p>This difference becomes manifest when <em>free</em> variables occur in a
1019
   <p>This difference becomes manifest when <em>free</em> variables occur in a
1020
function.  Free variables are those which are neither formal parameters
1020
function.  Free variables are those which are neither formal parameters
1021
(occurring in the argument list of the function) nor local variables
1021
(occurring in the argument list of the function) nor local variables
1022
(created by assigning to them in the body of the function).  Whereas S
1022
(created by assigning to them in the body of the function).  Whereas S
1023
(like C) by default uses <em>static</em> scoping, R (like Scheme) has
1023
(like C) by default uses <em>static</em> scoping, R (like Scheme) has
1024
adopted <em>lexical</em> scoping.  This means the values of free variables
1024
adopted <em>lexical</em> scoping.  This means the values of free variables
1025
are determined by a set of global variables in S, but in R by the
1025
are determined by a set of global variables in S, but in R by the
1026
bindings that were in effect at the time the function was created.
1026
bindings that were in effect at the time the function was created.
1027
 
1027
 
1028
   <p>Consider the following function:
1028
   <p>Consider the following function:
1029
 
1029
 
1030
<pre class="example">     cube &lt;- function(n) {
1030
<pre class="example">     cube &lt;- function(n) {
1031
       sq &lt;- function() n * n
1031
       sq &lt;- function() n * n
1032
       n * sq()
1032
       n * sq()
1033
     }
1033
     }
1034
     </pre>
1034
     </pre>
1035
 
1035
 
1036
   <p>Under S, <code>sq()</code> does not "know" about the variable <code>n</code>
1036
   <p>Under S, <code>sq()</code> does not "know" about the variable <code>n</code>
1037
unless it is defined globally:
1037
unless it is defined globally:
1038
 
1038
 
1039
<pre class="example">     S&gt; cube(2)
1039
<pre class="example">     S&gt; cube(2)
1040
     Error in sq():  Object "n" not found
1040
     Error in sq():  Object "n" not found
1041
     Dumped
1041
     Dumped
1042
     S&gt; n &lt;- 3
1042
     S&gt; n &lt;- 3
1043
     S&gt; cube(2)
1043
     S&gt; cube(2)
1044
     [1] 18
1044
     [1] 18
1045
     </pre>
1045
     </pre>
1046
 
1046
 
1047
   <p>In R, the "environment" created when <code>cube()</code> was invoked is
1047
   <p>In R, the "environment" created when <code>cube()</code> was invoked is
1048
also looked in:
1048
also looked in:
1049
 
1049
 
1050
<pre class="example">     R&gt; cube(2)
1050
<pre class="example">     R&gt; cube(2)
1051
     [1] 8
1051
     [1] 8
1052
     </pre>
1052
     </pre>
1053
 
1053
 
1054
   <p>As a more "interesting" real-world problem, suppose you want to write
1054
   <p>As a more "interesting" real-world problem, suppose you want to write
1055
a function which returns the density function of the r-th order
1055
a function which returns the density function of the r-th order
1056
statistic from a sample of size n from a (continuous)
1056
statistic from a sample of size n from a (continuous)
1057
distribution.  For simplicity, we shall use both the cdf and pdf of the
1057
distribution.  For simplicity, we shall use both the cdf and pdf of the
1058
distribution as explicit arguments.  (Example compiled from various
1058
distribution as explicit arguments.  (Example compiled from various
1059
postings by Luke Tierney.)
1059
postings by Luke Tierney.)
1060
 
1060
 
1061
   <p>The <small>S-PLUS</small> documentation for <code>call()</code> basically suggests the
1061
   <p>The <small>S-PLUS</small> documentation for <code>call()</code> basically suggests the
1062
following:
1062
following:
1063
 
1063
 
1064
<pre class="example">     dorder &lt;- function(n, r, pfun, dfun) {
1064
<pre class="example">     dorder &lt;- function(n, r, pfun, dfun) {
1065
       f &lt;- function(x) NULL
1065
       f &lt;- function(x) NULL
1066
       con &lt;- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
1066
       con &lt;- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
1067
       PF &lt;- call(substitute(pfun), as.name("x"))
1067
       PF &lt;- call(substitute(pfun), as.name("x"))
1068
       DF &lt;- call(substitute(dfun), as.name("x"))
1068
       DF &lt;- call(substitute(dfun), as.name("x"))
1069
       f[[length(f)]] &lt;-
1069
       f[[length(f)]] &lt;-
1070
         call("*", con,
1070
         call("*", con,
1071
              call("*", call("^", PF, r - 1),
1071
              call("*", call("^", PF, r - 1),
1072
                   call("*", call("^", call("-", 1, PF), n - r),
1072
                   call("*", call("^", call("-", 1, PF), n - r),
1073
                        DF)))
1073
                        DF)))
1074
       f
1074
       f
1075
     }
1075
     }
1076
     </pre>
1076
     </pre>
1077
 
1077
 
1078
<p>Rather tricky, isn't it?  The code uses the fact that in S,
1078
<p>Rather tricky, isn't it?  The code uses the fact that in S,
1079
functions are just lists of special mode with the function body as the
1079
functions are just lists of special mode with the function body as the
1080
last argument, and hence does not work in R (one could make the idea
1080
last argument, and hence does not work in R (one could make the idea
1081
work, though).
1081
work, though).
1082
 
1082
 
1083
   <p>A version which makes heavy use of <code>substitute()</code> and seems to work
1083
   <p>A version which makes heavy use of <code>substitute()</code> and seems to work
1084
under both S and R is
1084
under both S and R is
1085
 
1085
 
1086
<pre class="example">     dorder &lt;- function(n, r, pfun, dfun) {
1086
<pre class="example">     dorder &lt;- function(n, r, pfun, dfun) {
1087
       con &lt;- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
1087
       con &lt;- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
1088
       eval(substitute(function(x) K * PF(x)^a * (1 - PF(x))^b * DF(x),
1088
       eval(substitute(function(x) K * PF(x)^a * (1 - PF(x))^b * DF(x),
1089
                       list(PF = substitute(pfun), DF = substitute(dfun),
1089
                       list(PF = substitute(pfun), DF = substitute(dfun),
1090
                            a = r - 1, b = n - r, K = con)))
1090
                            a = r - 1, b = n - r, K = con)))
1091
     }
1091
     }
1092
     </pre>
1092
     </pre>
1093
 
1093
 
1094
<p>(the <code>eval()</code> is not needed in S).
1094
<p>(the <code>eval()</code> is not needed in S).
1095
 
1095
 
1096
   <p>However, in R there is a much easier solution:
1096
   <p>However, in R there is a much easier solution:
1097
 
1097
 
1098
<pre class="example">     dorder &lt;- function(n, r, pfun, dfun) {
1098
<pre class="example">     dorder &lt;- function(n, r, pfun, dfun) {
1099
       con &lt;- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
1099
       con &lt;- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
1100
       function(x) {
1100
       function(x) {
1101
         con * pfun(x)^(r - 1) * (1 - pfun(x))^(n - r) * dfun(x)
1101
         con * pfun(x)^(r - 1) * (1 - pfun(x))^(n - r) * dfun(x)
1102
       }
1102
       }
1103
     }
1103
     }
1104
     </pre>
1104
     </pre>
1105
 
1105
 
1106
<p>This seems to be the "natural" implementation, and it works because
1106
<p>This seems to be the "natural" implementation, and it works because
1107
the free variables in the returned function can be looked up in the
1107
the free variables in the returned function can be looked up in the
1108
defining environment (this is lexical scope).
1108
defining environment (this is lexical scope).
1109
 
1109
 
1110
   <p>Note that what you really need is the function <em>closure</em>, i.e., the
1110
   <p>Note that what you really need is the function <em>closure</em>, i.e., the
1111
body along with all variable bindings needed for evaluating it.  Since
1111
body along with all variable bindings needed for evaluating it.  Since
1112
in the above version, the free variables in the value function are not
1112
in the above version, the free variables in the value function are not
1113
modified, you can actually use it in S as well if you abstract out the
1113
modified, you can actually use it in S as well if you abstract out the
1114
closure operation into a function <code>MC()</code> (for "make closure"):
1114
closure operation into a function <code>MC()</code> (for "make closure"):
1115
 
1115
 
1116
<pre class="example">     dorder &lt;- function(n, r, pfun, dfun) {
1116
<pre class="example">     dorder &lt;- function(n, r, pfun, dfun) {
1117
       con &lt;- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
1117
       con &lt;- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
1118
       MC(function(x) {
1118
       MC(function(x) {
1119
            con * pfun(x)^(r - 1) * (1 - pfun(x))^(n - r) * dfun(x)
1119
            con * pfun(x)^(r - 1) * (1 - pfun(x))^(n - r) * dfun(x)
1120
          },
1120
          },
1121
          list(con = con, pfun = pfun, dfun = dfun, r = r, n = n))
1121
          list(con = con, pfun = pfun, dfun = dfun, r = r, n = n))
1122
     }
1122
     }
1123
     </pre>
1123
     </pre>
1124
 
1124
 
1125
   <p>Given the appropriate definitions of the closure operator, this works in
1125
   <p>Given the appropriate definitions of the closure operator, this works in
1126
both R and S, and is much "cleaner" than a substitute/eval solution
1126
both R and S, and is much "cleaner" than a substitute/eval solution
1127
(or one which overrules the default scoping rules by using explicit
1127
(or one which overrules the default scoping rules by using explicit
1128
access to evaluation frames, as is of course possible in both R and S).
1128
access to evaluation frames, as is of course possible in both R and S).
1129
 
1129
 
1130
   <p>For R, <code>MC()</code> simply is
1130
   <p>For R, <code>MC()</code> simply is
1131
 
1131
 
1132
<pre class="example">     MC &lt;- function(f, env) f
1132
<pre class="example">     MC &lt;- function(f, env) f
1133
     </pre>
1133
     </pre>
1134
 
1134
 
1135
<p>(lexical scope!), a version for S is
1135
<p>(lexical scope!), a version for S is
1136
 
1136
 
1137
<pre class="example">     MC &lt;- function(f, env = NULL) {
1137
<pre class="example">     MC &lt;- function(f, env = NULL) {
1138
       env &lt;- as.list(env)
1138
       env &lt;- as.list(env)
1139
       if (mode(f) != "function")
1139
       if (mode(f) != "function")
1140
         stop(paste("not a function:", f))
1140
         stop(paste("not a function:", f))
1141
       if (length(env) &gt; 0 &amp;&amp; any(names(env) == ""))
1141
       if (length(env) &gt; 0 &amp;&amp; any(names(env) == ""))
1142
         stop(paste("not all arguments are named:", env))
1142
         stop(paste("not all arguments are named:", env))
1143
       fargs &lt;- if(length(f) &gt; 1) f[1:(length(f) - 1)] else NULL
1143
       fargs &lt;- if(length(f) &gt; 1) f[1:(length(f) - 1)] else NULL
1144
       fargs &lt;- c(fargs, env)
1144
       fargs &lt;- c(fargs, env)
1145
       if (any(duplicated(names(fargs))))
1145
       if (any(duplicated(names(fargs))))
1146
         stop(paste("duplicated arguments:", paste(names(fargs)),
1146
         stop(paste("duplicated arguments:", paste(names(fargs)),
1147
              collapse = ", "))
1147
              collapse = ", "))
1148
       fbody &lt;- f[length(f)]
1148
       fbody &lt;- f[length(f)]
1149
       cf &lt;- c(fargs, fbody)
1149
       cf &lt;- c(fargs, fbody)
1150
       mode(cf) &lt;- "function"
1150
       mode(cf) &lt;- "function"
1151
       return(cf)
1151
       return(cf)
1152
     }
1152
     }
1153
     </pre>
1153
     </pre>
1154
 
1154
 
1155
   <p>Similarly, most optimization (or zero-finding) routines need some
1155
   <p>Similarly, most optimization (or zero-finding) routines need some
1156
arguments to be optimized over and have other parameters that depend on
1156
arguments to be optimized over and have other parameters that depend on
1157
the data but are fixed with respect to optimization.  With R scoping
1157
the data but are fixed with respect to optimization.  With R scoping
1158
rules, this is a trivial problem; simply make up the function with the
1158
rules, this is a trivial problem; simply make up the function with the
1159
required definitions in the same environment and scoping takes care of
1159
required definitions in the same environment and scoping takes care of
1160
it.  With S, one solution is to add an extra parameter to the function
1160
it.  With S, one solution is to add an extra parameter to the function
1161
and to the optimizer to pass in these extras, which however can only
1161
and to the optimizer to pass in these extras, which however can only
1162
work if the optimizer supports this.
1162
work if the optimizer supports this.
1163
 
1163
 
1164
   <p>Lexical scoping allows using function closures and maintaining local
1164
   <p>Lexical scoping allows using function closures and maintaining local
1165
state.  A simple example (taken from Abelson and Sussman) is obtained by
1165
state.  A simple example (taken from Abelson and Sussman) is obtained by
1166
typing <kbd>demo("scoping")</kbd> at the R prompt.  Further information is
1166
typing <kbd>demo("scoping")</kbd> at the R prompt.  Further information is
1167
provided in the standard R reference "R: A Language for Data Analysis
1167
provided in the standard R reference "R: A Language for Data Analysis
1168
and Graphics" (see <a href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>) and in Robert
1168
and Graphics" (see <a href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>) and in Robert
1169
Gentleman and Ross Ihaka (2000), "Lexical Scope and Statistical
1169
Gentleman and Ross Ihaka (2000), "Lexical Scope and Statistical
1170
Computing", <a href="http://www.amstat.org/publications/jcgs/"><em>Journal of Computational and Graphical Statistics</em></a>, <strong>9</strong>,
1170
Computing", <a href="http://www.amstat.org/publications/jcgs/"><em>Journal of Computational and Graphical Statistics</em></a>, <strong>9</strong>,
1171
491-508.
1171
491-508.
1172
 
1172
 
1173
   <p>Lexical scoping also implies a further major difference.  Whereas S
1173
   <p>Lexical scoping also implies a further major difference.  Whereas S
1174
stores all objects as separate files in a directory somewhere (usually
1174
stores all objects as separate files in a directory somewhere (usually
1175
<code>.Data</code> under the current directory), R does not.  All objects in R
1175
<code>.Data</code> under the current directory), R does not.  All objects in R
1176
are stored internally.  When R is started up it grabs a piece of memory
1176
are stored internally.  When R is started up it grabs a piece of memory
1177
and uses it to store the objects.  R performs its own memory management
1177
and uses it to store the objects.  R performs its own memory management
1178
of this piece of memory, growing and shrinking its size as needed. 
1178
of this piece of memory, growing and shrinking its size as needed. 
1179
Having everything in memory is necessary because it is not really
1179
Having everything in memory is necessary because it is not really
1180
possible to externally maintain all relevant "environments" of
1180
possible to externally maintain all relevant "environments" of
1181
symbol/value pairs.  This difference also seems to make R <em>faster</em>
1181
symbol/value pairs.  This difference also seems to make R <em>faster</em>
1182
than S.
1182
than S.
1183
 
1183
 
1184
   <p>The down side is that if R crashes you will lose all the work for the
1184
   <p>The down side is that if R crashes you will lose all the work for the
1185
current session.  Saving and restoring the memory "images" (the
1185
current session.  Saving and restoring the memory "images" (the
1186
functions and data stored in R's internal memory at any time) can be a
1186
functions and data stored in R's internal memory at any time) can be a
1187
bit slow, especially if they are big.  In S this does not happen,
1187
bit slow, especially if they are big.  In S this does not happen,
1188
because everything is saved in disk files and if you crash nothing is
1188
because everything is saved in disk files and if you crash nothing is
1189
likely to happen to them.  (In fact, one might conjecture that the S
1189
likely to happen to them.  (In fact, one might conjecture that the S
1190
developers felt that the price of changing their approach to persistent
1190
developers felt that the price of changing their approach to persistent
1191
storage just to accommodate lexical scope was far too expensive.) 
1191
storage just to accommodate lexical scope was far too expensive.) 
1192
Hence, when doing important work, you might consider saving often (see
1192
Hence, when doing important work, you might consider saving often (see
1193
<a href="#How%20can%20I%20save%20my%20workspace%3f">How can I save my workspace?</a>) to safeguard against possible
1193
<a href="#How%20can%20I%20save%20my%20workspace%3f">How can I save my workspace?</a>) to safeguard against possible
1194
crashes.  Other possibilities are logging your sessions, or have your R
1194
crashes.  Other possibilities are logging your sessions, or have your R
1195
commands stored in text files which can be read in using
1195
commands stored in text files which can be read in using
1196
<code>source()</code>.
1196
<code>source()</code>.
1197
 
1197
 
1198
   <blockquote>
1198
   <blockquote>
1199
<strong>Note:</strong>  If you run R from within Emacs (see <a href="#R%20and%20Emacs">R and Emacs</a>),
1199
<strong>Note:</strong>  If you run R from within Emacs (see <a href="#R%20and%20Emacs">R and Emacs</a>),
1200
you can save the contents of the interaction buffer to a file and
1200
you can save the contents of the interaction buffer to a file and
1201
conveniently manipulate it using <code>ess-transcript-mode</code>, as well as
1201
conveniently manipulate it using <code>ess-transcript-mode</code>, as well as
1202
save source copies of all functions and data used. 
1202
save source copies of all functions and data used. 
1203
</blockquote>
1203
</blockquote>
1204
 
1204
 
1205
<div class="node">
1205
<div class="node">
1206
<p><hr>
1206
<p><hr>
1207
Node:&nbsp;<a name="Models">Models</a>,
1207
Node:&nbsp;<a name="Models">Models</a>,
1208
Next:&nbsp;<a rel="next" accesskey="n" href="#Others">Others</a>,
1208
Next:&nbsp;<a rel="next" accesskey="n" href="#Others">Others</a>,
1209
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Lexical%20scoping">Lexical scoping</a>,
1209
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Lexical%20scoping">Lexical scoping</a>,
1210
Up:&nbsp;<a rel="up" accesskey="u" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>
1210
Up:&nbsp;<a rel="up" accesskey="u" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>
1211
<br>
1211
<br>
1212
</div>
1212
</div>
1213
 
1213
 
1214
<h3 class="subsection">3.3.2 Models</h4>
1214
<h3 class="subsection">3.3.2 Models</h4>
1215
 
1215
 
1216
<p>There are some differences in the modeling code, such as
1216
<p>There are some differences in the modeling code, such as
1217
 
1217
 
1218
     <ul>
1218
     <ul>
1219
<li>Whereas in S, you would use <code>lm(y ~ x^3)</code> to regress <code>y</code> on
1219
<li>Whereas in S, you would use <code>lm(y ~ x^3)</code> to regress <code>y</code> on
1220
<code>x^3</code>, in R, you have to insulate powers of numeric vectors (using
1220
<code>x^3</code>, in R, you have to insulate powers of numeric vectors (using
1221
<code>I()</code>), i.e., you have to use <code>lm(y ~ I(x^3))</code>. 
1221
<code>I()</code>), i.e., you have to use <code>lm(y ~ I(x^3))</code>. 
1222
<li>The glm family objects are implemented differently in R and S.  The same
1222
<li>The glm family objects are implemented differently in R and S.  The same
1223
functionality is available but the components have different names. 
1223
functionality is available but the components have different names. 
1224
<li>Option <code>na.action</code> is set to <code>"na.omit"</code> by default in R,
1224
<li>Option <code>na.action</code> is set to <code>"na.omit"</code> by default in R,
1225
but not set in S. 
1225
but not set in S. 
1226
<li>Terms objects are stored differently.  In S a terms object is an
1226
<li>Terms objects are stored differently.  In S a terms object is an
1227
expression with attributes, in R it is a formula with attributes.  The
1227
expression with attributes, in R it is a formula with attributes.  The
1228
attributes have the same names but are mostly stored differently.  The
1228
attributes have the same names but are mostly stored differently.  The
1229
major difference in functionality is that a terms object is
1229
major difference in functionality is that a terms object is
1230
subscriptable in S but not in R.  If you can't imagine why this would
1230
subscriptable in S but not in R.  If you can't imagine why this would
1231
matter then you don't need to know. 
1231
matter then you don't need to know. 
1232
<li>Finally, in R <code>y~x+0</code> is an alternative to <code>y~x-1</code> for
1232
<li>Finally, in R <code>y~x+0</code> is an alternative to <code>y~x-1</code> for
1233
specifying a model with no intercept.  Models with no parameters at all
1233
specifying a model with no intercept.  Models with no parameters at all
1234
can be specified by <code>y~0</code>. 
1234
can be specified by <code>y~0</code>. 
1235
</ul>
1235
</ul>
1236
 
1236
 
1237
<div class="node">
1237
<div class="node">
1238
<p><hr>
1238
<p><hr>
1239
Node:&nbsp;<a name="Others">Others</a>,
1239
Node:&nbsp;<a name="Others">Others</a>,
1240
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Models">Models</a>,
1240
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Models">Models</a>,
1241
Up:&nbsp;<a rel="up" accesskey="u" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>
1241
Up:&nbsp;<a rel="up" accesskey="u" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>
1242
<br>
1242
<br>
1243
</div>
1243
</div>
1244
 
1244
 
1245
<h3 class="subsection">3.3.3 Others</h4>
1245
<h3 class="subsection">3.3.3 Others</h4>
1246
 
1246
 
1247
<p>Apart from lexical scoping and its implications, R follows the S
1247
<p>Apart from lexical scoping and its implications, R follows the S
1248
language definition in the Blue and White Books as much as possible, and
1248
language definition in the Blue and White Books as much as possible, and
1249
hence really is an "implementation" of S.  There are some intentional
1249
hence really is an "implementation" of S.  There are some intentional
1250
differences where the behavior of S is considered "not clean".  In
1250
differences where the behavior of S is considered "not clean".  In
1251
general, the rationale is that R should help you detect programming
1251
general, the rationale is that R should help you detect programming
1252
errors, while at the same time being as compatible as possible with S.
1252
errors, while at the same time being as compatible as possible with S.
1253
 
1253
 
1254
   <p>Some known differences are the following.
1254
   <p>Some known differences are the following.
1255
 
1255
 
1256
     <ul>
1256
     <ul>
1257
 
1257
 
1258
     <li>In R, if <code>x</code> is a list, then <code>x[i] &lt;- NULL</code> and <code>x[[i]]
1258
     <li>In R, if <code>x</code> is a list, then <code>x[i] &lt;- NULL</code> and <code>x[[i]]
1259
&lt;- NULL</code> remove the specified elements from <code>x</code>.  The first of
1259
&lt;- NULL</code> remove the specified elements from <code>x</code>.  The first of
1260
these is incompatible with S, where it is a no-op.  (Note that you can
1260
these is incompatible with S, where it is a no-op.  (Note that you can
1261
set elements to <code>NULL</code> using <code>x[i] &lt;- list(NULL)</code>.)
1261
set elements to <code>NULL</code> using <code>x[i] &lt;- list(NULL)</code>.)
1262
 
1262
 
1263
     <li>In S, the functions named <code>.First</code> and <code>.Last</code> in the
1263
     <li>In S, the functions named <code>.First</code> and <code>.Last</code> in the
1264
<code>.Data</code> directory can be used for customizing, as they are executed
1264
<code>.Data</code> directory can be used for customizing, as they are executed
1265
at the very beginning and end of a session, respectively.
1265
at the very beginning and end of a session, respectively.
1266
 
1266
 
1267
     <p>In R, the startup mechanism is as follows.  R first sources the system
1267
     <p>In R, the startup mechanism is as follows.  R first sources the system
1268
startup file <code>$R_HOME/library/base/R/Rprofile</code>.  Then, it
1268
startup file <code>$R_HOME/library/base/R/Rprofile</code>.  Then, it
1269
searches for a site-wide startup profile unless the command line option
1269
searches for a site-wide startup profile unless the command line option
1270
<code>--no-site-file</code> was given.  The name of this file is taken from
1270
<code>--no-site-file</code> was given.  The name of this file is taken from
1271
the value of the <code>R_PROFILE</code> environment variable.  If that variable
1271
the value of the <code>R_PROFILE</code> environment variable.  If that variable
1272
is unset, the default is <code>$R_HOME/etc/Rprofile.site</code>
1272
is unset, the default is <code>$R_HOME/etc/Rprofile.site</code>
1273
(<code>$R_HOME/etc/Rprofile</code> in versions prior to 1.4.0).  This
1273
(<code>$R_HOME/etc/Rprofile</code> in versions prior to 1.4.0).  This
1274
code is loaded in package <strong>base</strong>.  Then, unless
1274
code is loaded in package <strong>base</strong>.  Then, unless
1275
<code>--no-init-file</code> was given, R searches for a file called
1275
<code>--no-init-file</code> was given, R searches for a file called
1276
<code>.Rprofile</code> in the current directory or in the user's home
1276
<code>.Rprofile</code> in the current directory or in the user's home
1277
directory (in that order) and sources it into the user workspace.  It
1277
directory (in that order) and sources it into the user workspace.  It
1278
then loads a saved image of the user workspace from <code>.RData</code> in
1278
then loads a saved image of the user workspace from <code>.RData</code> in
1279
case there is one (unless <code>--no-restore</code> was specified).  If
1279
case there is one (unless <code>--no-restore</code> was specified).  If
1280
needed, the functions <code>.First()</code> and <code>.Last()</code> should be
1280
needed, the functions <code>.First()</code> and <code>.Last()</code> should be
1281
defined in the appropriate startup profiles.
1281
defined in the appropriate startup profiles.
1282
 
1282
 
1283
     </p><li>In R, <code>T</code> and <code>F</code> are just variables being set to <code>TRUE</code>
1283
     </p><li>In R, <code>T</code> and <code>F</code> are just variables being set to <code>TRUE</code>
1284
and <code>FALSE</code>, respectively, but are not reserved words as in S and
1284
and <code>FALSE</code>, respectively, but are not reserved words as in S and
1285
hence can be overwritten by the user.  (This helps e.g. when you have
1285
hence can be overwritten by the user.  (This helps e.g. when you have
1286
factors with levels <code>"T"</code> or <code>"F"</code>.)  Hence, when writing code
1286
factors with levels <code>"T"</code> or <code>"F"</code>.)  Hence, when writing code
1287
you should always use <code>TRUE</code> and <code>FALSE</code>.
1287
you should always use <code>TRUE</code> and <code>FALSE</code>.
1288
 
1288
 
1289
     <li>In R, <code>dyn.load()</code> can only load <em>shared objects</em>, as created
1289
     <li>In R, <code>dyn.load()</code> can only load <em>shared objects</em>, as created
1290
for example by <kbd>R CMD SHLIB</kbd>.
1290
for example by <kbd>R CMD SHLIB</kbd>.
1291
 
1291
 
1292
     <li>In R, <code>attach()</code> currently only works for lists and data frames,
1292
     <li>In R, <code>attach()</code> currently only works for lists and data frames,
1293
but not for directories.  (In fact, <code>attach()</code> also works for R
1293
but not for directories.  (In fact, <code>attach()</code> also works for R
1294
data files created with <code>save()</code>, which is analogous to attaching
1294
data files created with <code>save()</code>, which is analogous to attaching
1295
directories in S.)  Also, you cannot attach at position 1.
1295
directories in S.)  Also, you cannot attach at position 1.
1296
 
1296
 
1297
     <li>Categories do not exist in R, and never will as they are deprecated now
1297
     <li>Categories do not exist in R, and never will as they are deprecated now
1298
in S.  Use factors instead.
1298
in S.  Use factors instead.
1299
 
1299
 
1300
     <li>In R, <code>For()</code> loops are not necessary and hence not supported.
1300
     <li>In R, <code>For()</code> loops are not necessary and hence not supported.
1301
 
1301
 
1302
     <li>In R, <code>assign()</code> uses the argument <code>envir=</code> rather than
1302
     <li>In R, <code>assign()</code> uses the argument <code>envir=</code> rather than
1303
<code>where=</code> as in S.
1303
<code>where=</code> as in S.
1304
 
1304
 
1305
     <li>The random number generators are different, and the seeds have different
1305
     <li>The random number generators are different, and the seeds have different
1306
length.
1306
length.
1307
 
1307
 
1308
     <li>R passes integer objects to C as <code>int *</code> rather than <code>long *</code>
1308
     <li>R passes integer objects to C as <code>int *</code> rather than <code>long *</code>
1309
as in S.
1309
as in S.
1310
 
1310
 
1311
     <li>R has no single precision storage mode.  However, as of version 0.65.1,
1311
     <li>R has no single precision storage mode.  However, as of version 0.65.1,
1312
there is a single precision interface to C/FORTRAN subroutines.
1312
there is a single precision interface to C/FORTRAN subroutines.
1313
 
1313
 
1314
     <li>By default, <code>ls()</code> returns the names of the objects in the current
1314
     <li>By default, <code>ls()</code> returns the names of the objects in the current
1315
(under R) and global (under S) environment, respectively.  For example,
1315
(under R) and global (under S) environment, respectively.  For example,
1316
given
1316
given
1317
 
1317
 
1318
     <pre class="example">          x &lt;- 1; fun &lt;- function() {y &lt;- 1; ls()}
1318
     <pre class="example">          x &lt;- 1; fun &lt;- function() {y &lt;- 1; ls()}
1319
          </pre>
1319
          </pre>
1320
 
1320
 
1321
     <p>then <code>fun()</code> returns <code>"y"</code> in R and <code>"x"</code> (together with
1321
     <p>then <code>fun()</code> returns <code>"y"</code> in R and <code>"x"</code> (together with
1322
the rest of the global environment) in S.
1322
the rest of the global environment) in S.
1323
 
1323
 
1324
     </p><li>R allows for zero-extent matrices (and arrays, i.e., some elements of
1324
     </p><li>R allows for zero-extent matrices (and arrays, i.e., some elements of
1325
the <code>dim</code> attribute vector can be 0).  This has been determined a
1325
the <code>dim</code> attribute vector can be 0).  This has been determined a
1326
useful feature as it helps reducing the need for special-case tests for
1326
useful feature as it helps reducing the need for special-case tests for
1327
empty subsets.  For example, if <code>x</code> is a matrix, <code>x[, FALSE]</code>
1327
empty subsets.  For example, if <code>x</code> is a matrix, <code>x[, FALSE]</code>
1328
is not <code>NULL</code> but a "matrix" with 0 columns.  Hence, such objects
1328
is not <code>NULL</code> but a "matrix" with 0 columns.  Hence, such objects
1329
need to be tested for by checking whether their <code>length()</code> is zero
1329
need to be tested for by checking whether their <code>length()</code> is zero
1330
(which works in both R and S), and not using <code>is.null()</code>.
1330
(which works in both R and S), and not using <code>is.null()</code>.
1331
 
1331
 
1332
     <li>Named vectors are considered vectors in R but not in S (e.g.,
1332
     <li>Named vectors are considered vectors in R but not in S (e.g.,
1333
<code>is.vector(c(a = 1:3))</code> returns <code>FALSE</code> in S and <code>TRUE</code>
1333
<code>is.vector(c(a = 1:3))</code> returns <code>FALSE</code> in S and <code>TRUE</code>
1334
in R).
1334
in R).
1335
 
1335
 
1336
     <li>Data frames are not considered as matrices in R (i.e., if <code>DF</code> is a
1336
     <li>Data frames are not considered as matrices in R (i.e., if <code>DF</code> is a
1337
data frame, then <code>is.matrix(DF)</code> returns <code>FALSE</code> in R and
1337
data frame, then <code>is.matrix(DF)</code> returns <code>FALSE</code> in R and
1338
<code>TRUE</code> in S).
1338
<code>TRUE</code> in S).
1339
 
1339
 
1340
     <li>R by default uses treatment contrasts in the unordered case, whereas S
1340
     <li>R by default uses treatment contrasts in the unordered case, whereas S
1341
uses the Helmert ones.  This is a deliberate difference reflecting the
1341
uses the Helmert ones.  This is a deliberate difference reflecting the
1342
opinion that treatment contrasts are more natural.
1342
opinion that treatment contrasts are more natural.
1343
 
1343
 
1344
     <li>In R, the argument of a replacement function which corresponds to the
1344
     <li>In R, the argument of a replacement function which corresponds to the
1345
right hand side must be named <code>value</code>.  E.g., <code>f(a) &lt;- b</code> is
1345
right hand side must be named <code>value</code>.  E.g., <code>f(a) &lt;- b</code> is
1346
evaluated as <code>a &lt;- "f&lt;-"(a, value = b)</code>.  S always takes the last
1346
evaluated as <code>a &lt;- "f&lt;-"(a, value = b)</code>.  S always takes the last
1347
argument, irrespective of its name.
1347
argument, irrespective of its name.
1348
 
1348
 
1349
     <li>In S, <code>substitute()</code> searches for names for substitution in the
1349
     <li>In S, <code>substitute()</code> searches for names for substitution in the
1350
given expression in three places: the actual and the default arguments
1350
given expression in three places: the actual and the default arguments
1351
of the matching call, and the local frame (in that order).  R looks in
1351
of the matching call, and the local frame (in that order).  R looks in
1352
the local frame only, with the special rule to use a "promise" if a
1352
the local frame only, with the special rule to use a "promise" if a
1353
variable is not evaluated.  Since the local frame is initialized with
1353
variable is not evaluated.  Since the local frame is initialized with
1354
the actual arguments or the default expressions, this is usually
1354
the actual arguments or the default expressions, this is usually
1355
equivalent to S, until assignment takes place.
1355
equivalent to S, until assignment takes place.
1356
 
1356
 
1357
     <li>In S, the index variable in a <code>for()</code> loop is local to the inside
1357
     <li>In S, the index variable in a <code>for()</code> loop is local to the inside
1358
of the loop.  In R it is local to the environment where the <code>for()</code>
1358
of the loop.  In R it is local to the environment where the <code>for()</code>
1359
statement is executed.
1359
statement is executed.
1360
 
1360
 
1361
     <li>In S, <code>tapply(simplify=TRUE)</code> returns a vector where R returns a
1361
     <li>In S, <code>tapply(simplify=TRUE)</code> returns a vector where R returns a
1362
one-dimensional array (which can have named dimnames).
1362
one-dimensional array (which can have named dimnames).
1363
 
1363
 
1364
     <li>In S(-<small>PLUS</small>) the C locale is used, whereas in R the current
1364
     <li>In S(-<small>PLUS</small>) the C locale is used, whereas in R the current
1365
operating system locale is used for determining which characters are
1365
operating system locale is used for determining which characters are
1366
alphanumeric and how they are sorted.  This affects the set of valid
1366
alphanumeric and how they are sorted.  This affects the set of valid
1367
names for R objects (for example accented chars may be allowed in R) and
1367
names for R objects (for example accented chars may be allowed in R) and
1368
ordering in sorts and comparisons (such as whether <code>"aA" &lt; "Bb"</code> is
1368
ordering in sorts and comparisons (such as whether <code>"aA" &lt; "Bb"</code> is
1369
true or false).  From version 1.2.0 the locale can be (re-)set in R by
1369
true or false).  From version 1.2.0 the locale can be (re-)set in R by
1370
the <code>Sys.setlocale()</code> function.
1370
the <code>Sys.setlocale()</code> function.
1371
 
1371
 
1372
     <li>In S, <code>missing(</code><var>arg</var><code>)</code> remains <code>TRUE</code> if <var>arg</var> is
1372
     <li>In S, <code>missing(</code><var>arg</var><code>)</code> remains <code>TRUE</code> if <var>arg</var> is
1373
subsequently modified; in R it doesn't.
1373
subsequently modified; in R it doesn't.
1374
 
1374
 
1375
     <li>From R version 1.3.0, <code>data.frame</code> strips <code>I()</code> when creating
1375
     <li>From R version 1.3.0, <code>data.frame</code> strips <code>I()</code> when creating
1376
(column) names.
1376
(column) names.
1377
 
1377
 
1378
     <li>In R, the string <code>"NA"</code> is not treated as a missing value in a
1378
     <li>In R, the string <code>"NA"</code> is not treated as a missing value in a
1379
character variable.  Use <code>as.character(NA)</code> to create a missing
1379
character variable.  Use <code>as.character(NA)</code> to create a missing
1380
character value.
1380
character value.
1381
 
1381
 
1382
     <li>R disallows repeated formal arguments in function calls.
1382
     <li>R disallows repeated formal arguments in function calls.
1383
 
1383
 
1384
   </ul>
1384
   </ul>
1385
 
1385
 
1386
   <p>There are also differences which are not intentional, and result from
1386
   <p>There are also differences which are not intentional, and result from
1387
missing or incorrect code in R.  The developers would appreciate hearing
1387
missing or incorrect code in R.  The developers would appreciate hearing
1388
about any deficiencies you may find (in a written report fully
1388
about any deficiencies you may find (in a written report fully
1389
documenting the difference as you see it).  Of course, it would be
1389
documenting the difference as you see it).  Of course, it would be
1390
useful if you were to implement the change yourself and make sure it
1390
useful if you were to implement the change yourself and make sure it
1391
works.
1391
works.
1392
 
1392
 
1393
<div class="node">
1393
<div class="node">
1394
<p><hr>
1394
<p><hr>
1395
Node:&nbsp;<a name="Is%20there%20anything%20R%20can%20do%20that%20S-PLUS%20cannot%3f">Is there anything R can do that S-PLUS cannot?</a>,
1395
Node:&nbsp;<a name="Is%20there%20anything%20R%20can%20do%20that%20S-PLUS%20cannot%3f">Is there anything R can do that S-PLUS cannot?</a>,
1396
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20is%20R-plus%3f">What is R-plus?</a>,
1396
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20is%20R-plus%3f">What is R-plus?</a>,
1397
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>,
1397
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20are%20the%20differences%20between%20R%20and%20S%3f">What are the differences between R and S?</a>,
1398
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20S">R and S</a>
1398
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20S">R and S</a>
1399
<br>
1399
<br>
1400
</div>
1400
</div>
1401
 
1401
 
1402
<h3 class="section">3.4 Is there anything R can do that <small>S-PLUS</small> cannot?</h3>
1402
<h3 class="section">3.4 Is there anything R can do that <small>S-PLUS</small> cannot?</h3>
1403
 
1403
 
1404
<p>Since almost anything you can do in R has source code that you could
1404
<p>Since almost anything you can do in R has source code that you could
1405
port to <small>S-PLUS</small> with little effort there will never be much you can do
1405
port to <small>S-PLUS</small> with little effort there will never be much you can do
1406
in R that you couldn't do in <small>S-PLUS</small> if you wanted to.  (Note that
1406
in R that you couldn't do in <small>S-PLUS</small> if you wanted to.  (Note that
1407
using lexical scoping may simplify matters considerably, though.)
1407
using lexical scoping may simplify matters considerably, though.)
1408
 
1408
 
1409
   <p>R offers several graphics features that <small>S-PLUS</small> does not, such as finer
1409
   <p>R offers several graphics features that <small>S-PLUS</small> does not, such as finer
1410
handling of line types, more convenient color handling (via palettes),
1410
handling of line types, more convenient color handling (via palettes),
1411
gamma correction for color, and, most importantly, mathematical
1411
gamma correction for color, and, most importantly, mathematical
1412
annotation in plot texts, via input expressions reminiscent of TeX
1412
annotation in plot texts, via input expressions reminiscent of TeX
1413
constructs.  See the help page for <code>plotmath</code>, which features an
1413
constructs.  See the help page for <code>plotmath</code>, which features an
1414
impressive on-line example.  More details can be found in Paul Murrell
1414
impressive on-line example.  More details can be found in Paul Murrell
1415
and Ross Ihaka (2000), "An Approach to Providing Mathematical
1415
and Ross Ihaka (2000), "An Approach to Providing Mathematical
1416
Annotation in Plots", <a href="http://www.amstat.org/publications/jcgs/"><em>Journal of Computational and Graphical Statistics</em></a>, <strong>9</strong>,
1416
Annotation in Plots", <a href="http://www.amstat.org/publications/jcgs/"><em>Journal of Computational and Graphical Statistics</em></a>, <strong>9</strong>,
1417
582-599.
1417
582-599.
1418
 
1418
 
1419
<div class="node">
1419
<div class="node">
1420
<p><hr>
1420
<p><hr>
1421
Node:&nbsp;<a name="What%20is%20R-plus%3f">What is R-plus?</a>,
1421
Node:&nbsp;<a name="What%20is%20R-plus%3f">What is R-plus?</a>,
1422
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Is%20there%20anything%20R%20can%20do%20that%20S-PLUS%20cannot%3f">Is there anything R can do that S-PLUS cannot?</a>,
1422
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Is%20there%20anything%20R%20can%20do%20that%20S-PLUS%20cannot%3f">Is there anything R can do that S-PLUS cannot?</a>,
1423
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20S">R and S</a>
1423
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20S">R and S</a>
1424
<br>
1424
<br>
1425
</div>
1425
</div>
1426
 
1426
 
1427
<h3 class="section">3.5 What is R-plus?</h3>
1427
<h3 class="section">3.5 What is R-plus?</h3>
1428
 
1428
 
1429
<p>There is no such thing.
1429
<p>There is no such thing.
1430
 
1430
 
1431
<div class="node">
1431
<div class="node">
1432
<p><hr>
1432
<p><hr>
1433
Node:&nbsp;<a name="R%20Web%20Interfaces">R Web Interfaces</a>,
1433
Node:&nbsp;<a name="R%20Web%20Interfaces">R Web Interfaces</a>,
1434
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Add-On%20Packages">R Add-On Packages</a>,
1434
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Add-On%20Packages">R Add-On Packages</a>,
1435
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20and%20S">R and S</a>,
1435
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20and%20S">R and S</a>,
1436
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
1436
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
1437
<br>
1437
<br>
1438
</div>
1438
</div>
1439
 
1439
 
1440
<h2 class="chapter">4 R Web Interfaces</h2>
1440
<h2 class="chapter">4 R Web Interfaces</h2>
1441
 
1441
 
1442
<p><strong>Rweb</strong> is developed and maintained by
1442
<p><strong>Rweb</strong> is developed and maintained by
1443
<a href="mailto:jeff@math.montana.edu">Jeff Banfield</a>.  The
1443
<a href="mailto:jeff@math.montana.edu">Jeff Banfield</a>.  The
1444
<a href="http://www.math.montana.edu/Rweb/">Rweb Home Page</a> provides access
1444
<a href="http://www.math.montana.edu/Rweb/">Rweb Home Page</a> provides access
1445
to all three versions of Rweb--a simple text entry form that returns
1445
to all three versions of Rweb--a simple text entry form that returns
1446
output and graphs, a more sophisticated Javascript version that provides
1446
output and graphs, a more sophisticated Javascript version that provides
1447
a multiple window environment, and a set of point and click modules that
1447
a multiple window environment, and a set of point and click modules that
1448
are useful for introductory statistics courses and require no knowledge
1448
are useful for introductory statistics courses and require no knowledge
1449
of the R language.  All of the Rweb versions can analyze Web accessible
1449
of the R language.  All of the Rweb versions can analyze Web accessible
1450
datasets if a <small>URL</small> is provided.
1450
datasets if a <small>URL</small> is provided.
1451
 
1451
 
1452
   <p>The paper "Rweb: Web-based Statistical Analysis", providing a detailed
1452
   <p>The paper "Rweb: Web-based Statistical Analysis", providing a detailed
1453
explanation of the different versions of Rweb and an overview of how
1453
explanation of the different versions of Rweb and an overview of how
1454
Rweb works, was published in the Journal of Statistical Software
1454
Rweb works, was published in the Journal of Statistical Software
1455
(<a href="http://www.stat.ucla.edu/journals/jss/v04/i01/">http://www.stat.ucla.edu/journals/jss/v04/i01/</a>).
1455
(<a href="http://www.stat.ucla.edu/journals/jss/v04/i01/">http://www.stat.ucla.edu/journals/jss/v04/i01/</a>).
1456
 
1456
 
1457
   <a href="mailto:ulfi@cs.tu-berlin.de">Ulf Bartel</a> is working on
1457
   <a href="mailto:ulfi@cs.tu-berlin.de">Ulf Bartel</a> is working on
1458
<strong>R-Online</strong>, a simple on-line programming environment for R which
1458
<strong>R-Online</strong>, a simple on-line programming environment for R which
1459
intends to make the first steps in statistical programming with R
1459
intends to make the first steps in statistical programming with R
1460
(especially with time series) as easy as possible.  There is no need for
1460
(especially with time series) as easy as possible.  There is no need for
1461
a local installation since the only requirement for the user is a
1461
a local installation since the only requirement for the user is a
1462
JavaScript capable browser.  See <a href="http://osvisions.com/r-online/">http://osvisions.com/r-online/</a>
1462
JavaScript capable browser.  See <a href="http://osvisions.com/r-online/">http://osvisions.com/r-online/</a>
1463
for more information.
1463
for more information.
1464
 
1464
 
1465
   <a href="mailto:http://www.warwick.ac.uk/go/dfirth">David Firth</a> has written
1465
   <a href="mailto:http://www.warwick.ac.uk/go/dfirth">David Firth</a> has written
1466
<strong>CGIwithR</strong>, an R add-on package available from <small>CRAN</small>.  It
1466
<strong>CGIwithR</strong>, an R add-on package available from <small>CRAN</small>.  It
1467
provides some simple extensions to R to facilitate running R scripts
1467
provides some simple extensions to R to facilitate running R scripts
1468
through the CGI interface to a web server.  It is easily installed using
1468
through the CGI interface to a web server.  It is easily installed using
1469
Apache under Linux and in principle should run on any platform that
1469
Apache under Linux and in principle should run on any platform that
1470
supports R and a web server provided that the installer has the
1470
supports R and a web server provided that the installer has the
1471
necessary security permissions.
1471
necessary security permissions.
1472
 
1472
 
1473
   <p><strong>Rcgi</strong> is a CGI WWW interface to R by <a href="mailto:mjr@dsl.pipex.com">MJ Ray</a>.  It had the ability to use "embedded code": you could mix
1473
   <p><strong>Rcgi</strong> is a CGI WWW interface to R by <a href="mailto:mjr@dsl.pipex.com">MJ Ray</a>.  It had the ability to use "embedded code": you could mix
1474
user input and code, allowing the <small>HTML</small> author to do anything from
1474
user input and code, allowing the <small>HTML</small> author to do anything from
1475
load in data sets to enter most of the commands for users without
1475
load in data sets to enter most of the commands for users without
1476
writing CGI scripts.  Graphical output was possible in PostScript or GIF
1476
writing CGI scripts.  Graphical output was possible in PostScript or GIF
1477
formats and the executed code was presented to the user for revision. 
1477
formats and the executed code was presented to the user for revision. 
1478
However, it is not clear if the project is still active. 
1478
However, it is not clear if the project is still active. 
1479
Currently, a modified version of <strong>Rcgi</strong> by
1479
Currently, a modified version of <strong>Rcgi</strong> by
1480
<a href="mailto:mai@ms.uky.edu">Mai Zhou</a> (actually, two versions: one with
1480
<a href="mailto:mai@ms.uky.edu">Mai Zhou</a> (actually, two versions: one with
1481
(bitmap) graphics and one without) as well as the original code are
1481
(bitmap) graphics and one without) as well as the original code are
1482
available from <a href="http://www.ms.uky.edu/~statweb">http://www.ms.uky.edu/~statweb</a>.
1482
available from <a href="http://www.ms.uky.edu/~statweb">http://www.ms.uky.edu/~statweb</a>.
1483
 
1483
 
1484
<div class="node">
1484
<div class="node">
1485
<p><hr>
1485
<p><hr>
1486
Node:&nbsp;<a name="R%20Add-On%20Packages">R Add-On Packages</a>,
1486
Node:&nbsp;<a name="R%20Add-On%20Packages">R Add-On Packages</a>,
1487
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20and%20Emacs">R and Emacs</a>,
1487
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20and%20Emacs">R and Emacs</a>,
1488
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Web%20Interfaces">R Web Interfaces</a>,
1488
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Web%20Interfaces">R Web Interfaces</a>,
1489
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
1489
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
1490
<br>
1490
<br>
1491
</div>
1491
</div>
1492
 
1492
 
1493
<h2 class="chapter">5 R Add-On Packages</h2>
1493
<h2 class="chapter">5 R Add-On Packages</h2>
1494
 
1494
 
1495
<ul class="menu">
1495
<ul class="menu">
1496
<li><a accesskey="1" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>: 
1496
<li><a accesskey="1" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>: 
1497
<li><a accesskey="2" href="#How%20can%20add-on%20packages%20be%20installed%3f">How can add-on packages be installed?</a>: 
1497
<li><a accesskey="2" href="#How%20can%20add-on%20packages%20be%20installed%3f">How can add-on packages be installed?</a>: 
1498
<li><a accesskey="3" href="#How%20can%20add-on%20packages%20be%20used%3f">How can add-on packages be used?</a>: 
1498
<li><a accesskey="3" href="#How%20can%20add-on%20packages%20be%20used%3f">How can add-on packages be used?</a>: 
1499
<li><a accesskey="4" href="#How%20can%20add-on%20packages%20be%20removed%3f">How can add-on packages be removed?</a>: 
1499
<li><a accesskey="4" href="#How%20can%20add-on%20packages%20be%20removed%3f">How can add-on packages be removed?</a>: 
1500
<li><a accesskey="5" href="#How%20can%20I%20create%20an%20R%20package%3f">How can I create an R package?</a>: 
1500
<li><a accesskey="5" href="#How%20can%20I%20create%20an%20R%20package%3f">How can I create an R package?</a>: 
1501
<li><a accesskey="6" href="#How%20can%20I%20contribute%20to%20R%3f">How can I contribute to R?</a>: 
1501
<li><a accesskey="6" href="#How%20can%20I%20contribute%20to%20R%3f">How can I contribute to R?</a>: 
1502
</ul>
1502
</ul>
1503
 
1503
 
1504
<div class="node">
1504
<div class="node">
1505
<p><hr>
1505
<p><hr>
1506
Node:&nbsp;<a name="Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>,
1506
Node:&nbsp;<a name="Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>,
1507
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20add-on%20packages%20be%20installed%3f">How can add-on packages be installed?</a>,
1507
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20add-on%20packages%20be%20installed%3f">How can add-on packages be installed?</a>,
1508
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Add-On%20Packages">R Add-On Packages</a>,
1508
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Add-On%20Packages">R Add-On Packages</a>,
1509
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
1509
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
1510
<br>
1510
<br>
1511
</div>
1511
</div>
1512
 
1512
 
1513
<h3 class="section">5.1 Which add-on packages exist for R?</h3>
1513
<h3 class="section">5.1 Which add-on packages exist for R?</h3>
1514
 
1514
 
1515
<ul class="menu">
1515
<ul class="menu">
1516
<li><a accesskey="1" href="#Add-on%20packages%20in%20R">Add-on packages in R</a>: 
1516
<li><a accesskey="1" href="#Add-on%20packages%20in%20R">Add-on packages in R</a>: 
1517
<li><a accesskey="2" href="#Add-on%20packages%20from%20CRAN">Add-on packages from CRAN</a>: 
1517
<li><a accesskey="2" href="#Add-on%20packages%20from%20CRAN">Add-on packages from CRAN</a>: 
1518
<li><a accesskey="3" href="#Add-on%20packages%20from%20Omegahat">Add-on packages from Omegahat</a>: 
1518
<li><a accesskey="3" href="#Add-on%20packages%20from%20Omegahat">Add-on packages from Omegahat</a>: 
1519
<li><a accesskey="4" href="#Add-on%20packages%20from%20BioConductor">Add-on packages from BioConductor</a>: 
1519
<li><a accesskey="4" href="#Add-on%20packages%20from%20BioConductor">Add-on packages from BioConductor</a>: 
1520
<li><a accesskey="5" href="#Other%20add-on%20packages">Other add-on packages</a>: 
1520
<li><a accesskey="5" href="#Other%20add-on%20packages">Other add-on packages</a>: 
1521
</ul>
1521
</ul>
1522
 
1522
 
1523
<div class="node">
1523
<div class="node">
1524
<p><hr>
1524
<p><hr>
1525
Node:&nbsp;<a name="Add-on%20packages%20in%20R">Add-on packages in R</a>,
1525
Node:&nbsp;<a name="Add-on%20packages%20in%20R">Add-on packages in R</a>,
1526
Next:&nbsp;<a rel="next" accesskey="n" href="#Add-on%20packages%20from%20CRAN">Add-on packages from CRAN</a>,
1526
Next:&nbsp;<a rel="next" accesskey="n" href="#Add-on%20packages%20from%20CRAN">Add-on packages from CRAN</a>,
1527
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>,
1527
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>,
1528
Up:&nbsp;<a rel="up" accesskey="u" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>
1528
Up:&nbsp;<a rel="up" accesskey="u" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>
1529
<br>
1529
<br>
1530
</div>
1530
</div>
1531
 
1531
 
1532
<h3 class="subsection">5.1.1 Add-on packages in R</h4>
1532
<h3 class="subsection">5.1.1 Add-on packages in R</h4>
1533
 
1533
 
1534
<p>The R distribution comes with the following extra packages:
1534
<p>The R distribution comes with the following extra packages:
1535
 
1535
 
1536
     <dl>
1536
     <dl>
1537
<dt><strong>ctest</strong>
1537
<dt><strong>ctest</strong>
1538
     <dd>A collection of Classical TESTs, including the Ansari-Bradley, Bartlett,
1538
     <dd>A collection of Classical TESTs, including the Ansari-Bradley, Bartlett,
1539
chi-squared, Fisher, Kruskal-Wallis, Kolmogorov-Smirnov, t, and
1539
chi-squared, Fisher, Kruskal-Wallis, Kolmogorov-Smirnov, t, and
1540
Wilcoxon tests. 
1540
Wilcoxon tests. 
1541
<br><dt><strong>eda</strong>
1541
<br><dt><strong>eda</strong>
1542
     <dd>Exploratory Data Analysis.  Currently only contains functions for robust
1542
     <dd>Exploratory Data Analysis.  Currently only contains functions for robust
1543
line fitting, and median polish and smoothing. 
1543
line fitting, and median polish and smoothing. 
1544
<br><dt><strong>grid</strong>
1544
<br><dt><strong>grid</strong>
1545
     <dd>A rewrite of the graphics layout capabilities, plus some support for
1545
     <dd>A rewrite of the graphics layout capabilities, plus some support for
1546
interaction. 
1546
interaction. 
1547
(Added in R 1.8.0). 
1547
(Added in R 1.8.0). 
1548
<br><dt><strong>lqs</strong>
1548
<br><dt><strong>lqs</strong>
1549
     <dd>Resistant regression and covariance estimation. 
1549
     <dd>Resistant regression and covariance estimation. 
1550
<br><dt><strong>methods</strong>
1550
<br><dt><strong>methods</strong>
1551
     <dd>Formally defined methods and classes for R objects, plus other
1551
     <dd>Formally defined methods and classes for R objects, plus other
1552
programming tools, as described in the Green Book. 
1552
programming tools, as described in the Green Book. 
1553
<br><dt><strong>mle</strong>
1553
<br><dt><strong>mle</strong>
1554
     <dd>Generic (smooth) likelihood maximization and profiling. 
1554
     <dd>Generic (smooth) likelihood maximization and profiling. 
1555
(Added in R 1.8.0). 
1555
(Added in R 1.8.0). 
1556
<br><dt><strong>modreg</strong>
1556
<br><dt><strong>modreg</strong>
1557
     <dd>MODern REGression: smoothing and local methods. 
1557
     <dd>MODern REGression: smoothing and local methods. 
1558
<br><dt><strong>mva</strong>
1558
<br><dt><strong>mva</strong>
1559
     <dd>MultiVariate Analysis.  Currently contains code for principal
1559
     <dd>MultiVariate Analysis.  Currently contains code for principal
1560
components, canonical correlations, metric multidimensional scaling,
1560
components, canonical correlations, metric multidimensional scaling,
1561
factor analysis, and hierarchical and k-means clustering. 
1561
factor analysis, and hierarchical and k-means clustering. 
1562
<br><dt><strong>nls</strong>
1562
<br><dt><strong>nls</strong>
1563
     <dd>Nonlinear regression routines. 
1563
     <dd>Nonlinear regression routines. 
1564
<br><dt><strong>splines</strong>
1564
<br><dt><strong>splines</strong>
1565
     <dd>Regression spline functions and classes. 
1565
     <dd>Regression spline functions and classes. 
1566
<br><dt><strong>stepfun</strong>
1566
<br><dt><strong>stepfun</strong>
1567
     <dd>Code for dealing with STEP FUNctions, including empirical cumulative
1567
     <dd>Code for dealing with STEP FUNctions, including empirical cumulative
1568
distribution functions. 
1568
distribution functions. 
1569
<br><dt><strong>tcltk</strong>
1569
<br><dt><strong>tcltk</strong>
1570
     <dd>Interface and language bindings to Tcl/Tk <small>GUI</small> elements. 
1570
     <dd>Interface and language bindings to Tcl/Tk <small>GUI</small> elements. 
1571
<br><dt><strong>tools</strong>
1571
<br><dt><strong>tools</strong>
1572
     <dd>Tools for package development and administration. 
1572
     <dd>Tools for package development and administration. 
1573
<br><dt><strong>ts</strong>
1573
<br><dt><strong>ts</strong>
1574
     <dd>Time Series. 
1574
     <dd>Time Series. 
1575
</dl>
1575
</dl>
1576
   In R 1.9, <strong>base</strong> will be split into the four packages
1576
   In R 1.9, <strong>base</strong> will be split into the four packages
1577
<strong>base</strong>, <strong>graphics</strong>, <strong>stats</strong>, and <strong>utils</strong>. 
1577
<strong>base</strong>, <strong>graphics</strong>, <strong>stats</strong>, and <strong>utils</strong>. 
1578
Packages <strong>ctest</strong>, <strong>eda</strong>, <strong>modreg</strong>, <strong>mva</strong>,
1578
Packages <strong>ctest</strong>, <strong>eda</strong>, <strong>modreg</strong>, <strong>mva</strong>,
1579
<strong>nls</strong>, <strong>stepfun</strong> and <strong>ts</strong> will be merged into
1579
<strong>nls</strong>, <strong>stepfun</strong> and <strong>ts</strong> will be merged into
1580
<strong>stats</strong>, package <strong>lqs</strong> returned to the recommended package
1580
<strong>stats</strong>, package <strong>lqs</strong> returned to the recommended package
1581
<strong>MASS</strong>, and package <strong>mle</strong> moved to <strong>stats4</strong>.
1581
<strong>MASS</strong>, and package <strong>mle</strong> moved to <strong>stats4</strong>.
1582
 
1582
 
1583
<div class="node">
1583
<div class="node">
1584
<p><hr>
1584
<p><hr>
1585
Node:&nbsp;<a name="Add-on%20packages%20from%20CRAN">Add-on packages from CRAN</a>,
1585
Node:&nbsp;<a name="Add-on%20packages%20from%20CRAN">Add-on packages from CRAN</a>,
1586
Next:&nbsp;<a rel="next" accesskey="n" href="#Add-on%20packages%20from%20Omegahat">Add-on packages from Omegahat</a>,
1586
Next:&nbsp;<a rel="next" accesskey="n" href="#Add-on%20packages%20from%20Omegahat">Add-on packages from Omegahat</a>,
1587
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Add-on%20packages%20in%20R">Add-on packages in R</a>,
1587
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Add-on%20packages%20in%20R">Add-on packages in R</a>,
1588
Up:&nbsp;<a rel="up" accesskey="u" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>
1588
Up:&nbsp;<a rel="up" accesskey="u" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>
1589
<br>
1589
<br>
1590
</div>
1590
</div>
1591
 
1591
 
1592
<h3 class="subsection">5.1.2 Add-on packages from <small>CRAN</small></h4>
1592
<h3 class="subsection">5.1.2 Add-on packages from <small>CRAN</small></h4>
1593
 
1593
 
1594
<p>The following packages are available from the <small>CRAN</small> <code>src/contrib</code>
1594
<p>The following packages are available from the <small>CRAN</small> <code>src/contrib</code>
1595
area.  (Packages denoted as <em>Recommended</em> are to be included in all
1595
area.  (Packages denoted as <em>Recommended</em> are to be included in all
1596
binary distributions of R.)
1596
binary distributions of R.)
1597
 
1597
 
1598
     <dl>
1598
     <dl>
1599
<dt><strong>AlgDesign</strong>
1599
<dt><strong>AlgDesign</strong>
1600
     <dd>Algorithmic experimental designs.  Calculates exact and approximate
1600
     <dd>Algorithmic experimental designs.  Calculates exact and approximate
1601
theory experimental designs for D, A, and I criteria. 
1601
theory experimental designs for D, A, and I criteria. 
1602
<br><dt><strong>AnalyzeFMRI</strong>
1602
<br><dt><strong>AnalyzeFMRI</strong>
1603
     <dd>Functions for I/O, visualisation and analysis of functional Magnetic
1603
     <dd>Functions for I/O, visualisation and analysis of functional Magnetic
1604
Resonance Imaging (fMRI) datasets stored in the ANALYZE format. 
1604
Resonance Imaging (fMRI) datasets stored in the ANALYZE format. 
1605
<br><dt><strong>Bhat</strong>
1605
<br><dt><strong>Bhat</strong>
1606
     <dd>Functions for general likelihood exploration (MLE, MCMC, CIs). 
1606
     <dd>Functions for general likelihood exploration (MLE, MCMC, CIs). 
1607
<br><dt><strong>BradleyTerry</strong>
1607
<br><dt><strong>BradleyTerry</strong>
1608
     <dd>Specify and fit the Bradley-Terry model and structured versions. 
1608
     <dd>Specify and fit the Bradley-Terry model and structured versions. 
1609
<br><dt><strong>BsMD</strong>
1609
<br><dt><strong>BsMD</strong>
1610
     <dd>Bayes screening and model discrimination follow-up designs. 
1610
     <dd>Bayes screening and model discrimination follow-up designs. 
1611
<br><dt><strong>CDNmoney</strong>
1611
<br><dt><strong>CDNmoney</strong>
1612
     <dd>Components of Canadian monetary aggregates. 
1612
     <dd>Components of Canadian monetary aggregates. 
1613
<br><dt><strong>CGIwithR</strong>
1613
<br><dt><strong>CGIwithR</strong>
1614
     <dd>Facilities for the use of R to write CGI scripts. 
1614
     <dd>Facilities for the use of R to write CGI scripts. 
1615
<br><dt><strong>CircStats</strong>
1615
<br><dt><strong>CircStats</strong>
1616
     <dd>Circular Statistics, from "Topics in Circular Statistics" by S. Rao
1616
     <dd>Circular Statistics, from "Topics in Circular Statistics" by S. Rao
1617
Jammalamadaka and A. SenGupta, 2001, World Scientific. 
1617
Jammalamadaka and A. SenGupta, 2001, World Scientific. 
1618
<br><dt><strong>CoCoAn</strong>
1618
<br><dt><strong>CoCoAn</strong>
1619
     <dd>Constrained Correspondence Analysis. 
1619
     <dd>Constrained Correspondence Analysis. 
1620
<br><dt><strong>DAAG</strong>
1620
<br><dt><strong>DAAG</strong>
1621
     <dd>Various data sets used in examples and exercises in "Data Analysis and
1621
     <dd>Various data sets used in examples and exercises in "Data Analysis and
1622
Graphics Using R" by John H. Maindonald and W. John Brown, 2003. 
1622
Graphics Using R" by John H. Maindonald and W. John Brown, 2003. 
1623
<br><dt><strong>DBI</strong>
1623
<br><dt><strong>DBI</strong>
1624
     <dd>A common database interface (DBI) class and method definitions.  All
1624
     <dd>A common database interface (DBI) class and method definitions.  All
1625
classes in this package are virtual and need to be extended by the
1625
classes in this package are virtual and need to be extended by the
1626
various DBMS implementations. 
1626
various DBMS implementations. 
1627
<br><dt><strong>Davies</strong>
1627
<br><dt><strong>Davies</strong>
1628
     <dd>Functions for the Davies quantile function and the Generalized Lambda
1628
     <dd>Functions for the Davies quantile function and the Generalized Lambda
1629
distribution. 
1629
distribution. 
1630
<br><dt><strong>Design</strong>
1630
<br><dt><strong>Design</strong>
1631
     <dd>Regression modeling, testing, estimation, validation, graphics,
1631
     <dd>Regression modeling, testing, estimation, validation, graphics,
1632
prediction, and typesetting by storing enhanced model design attributes
1632
prediction, and typesetting by storing enhanced model design attributes
1633
in the fit.  Design is a collection of about 180 functions that assist
1633
in the fit.  Design is a collection of about 180 functions that assist
1634
and streamline modeling, especially for biostatistical and epidemiologic
1634
and streamline modeling, especially for biostatistical and epidemiologic
1635
applications.  It also contains new functions for binary and ordinal
1635
applications.  It also contains new functions for binary and ordinal
1636
logistic regression models and the Buckley-James multiple regression
1636
logistic regression models and the Buckley-James multiple regression
1637
model for right-censored responses, and implements penalized maximum
1637
model for right-censored responses, and implements penalized maximum
1638
likelihood estimation for logistic and ordinary linear models.  Design
1638
likelihood estimation for logistic and ordinary linear models.  Design
1639
works with almost any regression model, but it was especially written to
1639
works with almost any regression model, but it was especially written to
1640
work with logistic regression, Cox regression, accelerated failure time
1640
work with logistic regression, Cox regression, accelerated failure time
1641
models, ordinary linear models, and the Buckley-James model. 
1641
models, ordinary linear models, and the Buckley-James model. 
1642
<br><dt><strong>Devore5</strong>
1642
<br><dt><strong>Devore5</strong>
1643
     <dd>Data sets and sample analyses from "Probability and Statistics for
1643
     <dd>Data sets and sample analyses from "Probability and Statistics for
1644
Engineering and the Sciences (5th ed)" by Jay L. Devore, 2000, Duxbury. 
1644
Engineering and the Sciences (5th ed)" by Jay L. Devore, 2000, Duxbury. 
1645
<br><dt><strong>Devore6</strong>
1645
<br><dt><strong>Devore6</strong>
1646
     <dd>Data sets and sample analyses from "Probability and Statistics for
1646
     <dd>Data sets and sample analyses from "Probability and Statistics for
1647
Engineering and the Sciences (6th ed)" by Jay L. Devore, 2003, Duxbury. 
1647
Engineering and the Sciences (6th ed)" by Jay L. Devore, 2003, Duxbury. 
1648
<br><dt><strong>EMV</strong>
1648
<br><dt><strong>EMV</strong>
1649
     <dd>Estimation of missing values in a matrix by a k-th nearest
1649
     <dd>Estimation of missing values in a matrix by a k-th nearest
1650
neighboors algorithm. 
1650
neighboors algorithm. 
1651
<br><dt><strong>GRASS</strong>
1651
<br><dt><strong>GRASS</strong>
1652
     <dd>An interface between the GRASS geographical information system and R,
1652
     <dd>An interface between the GRASS geographical information system and R,
1653
based on starting R from within the GRASS environment and chosen
1653
based on starting R from within the GRASS environment and chosen
1654
LOCATION_NAME and MAPSET.  Wrapper and helper functions are provided for
1654
LOCATION_NAME and MAPSET.  Wrapper and helper functions are provided for
1655
a range of R functions to match the interface metadata structures. 
1655
a range of R functions to match the interface metadata structures. 
1656
<br><dt><strong>GenKern</strong>
1656
<br><dt><strong>GenKern</strong>
1657
     <dd>Functions for generating and manipulating generalised binned kernel
1657
     <dd>Functions for generating and manipulating generalised binned kernel
1658
density estimates. 
1658
density estimates. 
1659
<br><dt><strong>GeneTS</strong>
1659
<br><dt><strong>GeneTS</strong>
1660
     <dd>A package for analysing multiple gene expression time series data. 
1660
     <dd>A package for analysing multiple gene expression time series data. 
1661
Currently, implements methods for cell cycle analysis and for inferring
1661
Currently, implements methods for cell cycle analysis and for inferring
1662
large sparse graphical Gaussian models. 
1662
large sparse graphical Gaussian models. 
1663
<br><dt><strong>HI</strong>
1663
<br><dt><strong>HI</strong>
1664
     <dd>Simulation from distributions supported by nested hyperplanes. 
1664
     <dd>Simulation from distributions supported by nested hyperplanes. 
1665
<br><dt><strong>Hmisc</strong>
1665
<br><dt><strong>Hmisc</strong>
1666
     <dd>Functions useful for data analysis, high-level graphics, utility
1666
     <dd>Functions useful for data analysis, high-level graphics, utility
1667
operations, functions for computing sample size and power, importing
1667
operations, functions for computing sample size and power, importing
1668
datasets, imputing missing values, advanced table making, variable
1668
datasets, imputing missing values, advanced table making, variable
1669
clustering, character string manipulation, conversion of S objects to
1669
clustering, character string manipulation, conversion of S objects to
1670
LaTeX code, recoding variables, and bootstrap repeated measures
1670
LaTeX code, recoding variables, and bootstrap repeated measures
1671
analysis. 
1671
analysis. 
1672
<br><dt><strong>HyperbolicDist</strong>
1672
<br><dt><strong>HyperbolicDist</strong>
1673
     <dd>Basic functions for the hyperbolic distribution: probability density
1673
     <dd>Basic functions for the hyperbolic distribution: probability density
1674
function, distribution function, quantile function, a routine for
1674
function, distribution function, quantile function, a routine for
1675
generating observations from the hyperbolic, and a function for fitting
1675
generating observations from the hyperbolic, and a function for fitting
1676
the hyperbolic distribution to data. 
1676
the hyperbolic distribution to data. 
1677
<br><dt><strong>ISwR</strong>
1677
<br><dt><strong>ISwR</strong>
1678
     <dd>Data sets for "Introductory Statistics with R" by Peter Dalgaard,
1678
     <dd>Data sets for "Introductory Statistics with R" by Peter Dalgaard,
1679
2002, Springer. 
1679
2002, Springer. 
1680
<br><dt><strong>KMsurv</strong>
1680
<br><dt><strong>KMsurv</strong>
1681
     <dd>Data sets and functions for "Survival Analysis, Techniques for Censored
1681
     <dd>Data sets and functions for "Survival Analysis, Techniques for Censored
1682
and Truncated Data" by Klein and Moeschberger, 1997, Springer. 
1682
and Truncated Data" by Klein and Moeschberger, 1997, Springer. 
1683
<br><dt><strong>KernSmooth</strong>
1683
<br><dt><strong>KernSmooth</strong>
1684
     <dd>Functions for kernel smoothing (and density estimation) corresponding to
1684
     <dd>Functions for kernel smoothing (and density estimation) corresponding to
1685
the book "Kernel Smoothing" by M. P. Wand and M. C. Jones, 1995. 
1685
the book "Kernel Smoothing" by M. P. Wand and M. C. Jones, 1995. 
1686
<em>Recommended</em>. 
1686
<em>Recommended</em>. 
1687
<br><dt><strong>MASS</strong>
1687
<br><dt><strong>MASS</strong>
1688
     <dd>Functions and datasets from the main package of Venables and Ripley,
1688
     <dd>Functions and datasets from the main package of Venables and Ripley,
1689
"Modern Applied Statistics with S".  Contained in the <code>VR</code>
1689
"Modern Applied Statistics with S".  Contained in the <code>VR</code>
1690
bundle.  <em>Recommended</em>. 
1690
bundle.  <em>Recommended</em>. 
1691
<br><dt><strong>MCMCpack</strong>
1691
<br><dt><strong>MCMCpack</strong>
1692
     <dd>Markov chain Monte Carlo (MCMC) package: functions for posterior
1692
     <dd>Markov chain Monte Carlo (MCMC) package: functions for posterior
1693
simulation for a number of statistical models. 
1693
simulation for a number of statistical models. 
1694
<br><dt><strong>MPV</strong>
1694
<br><dt><strong>MPV</strong>
1695
     <dd>Data sets from the book "Introduction to Linear Regression Analysis"
1695
     <dd>Data sets from the book "Introduction to Linear Regression Analysis"
1696
by D. C. Montgomery, E. A. Peck, and C. G. Vining, 2001, John Wiley and
1696
by D. C. Montgomery, E. A. Peck, and C. G. Vining, 2001, John Wiley and
1697
Sons. 
1697
Sons. 
1698
<br><dt><strong>Matrix</strong>
1698
<br><dt><strong>Matrix</strong>
1699
     <dd>A Matrix package. 
1699
     <dd>A Matrix package. 
1700
<br><dt><strong>NISTnls</strong>
1700
<br><dt><strong>NISTnls</strong>
1701
     <dd>A set of test nonlinear least squares examples from <small>NIST</small>, the
1701
     <dd>A set of test nonlinear least squares examples from <small>NIST</small>, the
1702
U.S. National Institute for Standards and Technology. 
1702
U.S. National Institute for Standards and Technology. 
1703
<br><dt><strong>Oarray</strong>
1703
<br><dt><strong>Oarray</strong>
1704
     <dd>Arrays with arbitrary offsets. 
1704
     <dd>Arrays with arbitrary offsets. 
1705
<br><dt><strong>PHYLOGR</strong>
1705
<br><dt><strong>PHYLOGR</strong>
1706
     <dd>Manipulation and analysis of phylogenetically simulated data sets (as
1706
     <dd>Manipulation and analysis of phylogenetically simulated data sets (as
1707
obtained from PDSIMUL in package PDAP) and phylogenetically-based
1707
obtained from PDSIMUL in package PDAP) and phylogenetically-based
1708
analyses using GLS. 
1708
analyses using GLS. 
1709
<br><dt><strong>PTAk</strong>
1709
<br><dt><strong>PTAk</strong>
1710
     <dd>A multiway method to decompose a tensor (array) of any order, as a
1710
     <dd>A multiway method to decompose a tensor (array) of any order, as a
1711
generalisation of SVD also supporting non-identity metrics and
1711
generalisation of SVD also supporting non-identity metrics and
1712
penalisations.  Also includes some other multiway methods. 
1712
penalisations.  Also includes some other multiway methods. 
1713
<br><dt><strong>R2HTML</strong>
1713
<br><dt><strong>R2HTML</strong>
1714
     <dd>Functions for exporting R objects &amp; graphics in an <small>HTML</small> document. 
1714
     <dd>Functions for exporting R objects &amp; graphics in an <small>HTML</small> document. 
1715
<br><dt><strong>R2WinBUGS</strong>
1715
<br><dt><strong>R2WinBUGS</strong>
1716
     <dd>Running WinBUGS from R: call a BUGS model, summarize inferences and
1716
     <dd>Running WinBUGS from R: call a BUGS model, summarize inferences and
1717
convergence in a table and graph, and save the simulations in arrays for
1717
convergence in a table and graph, and save the simulations in arrays for
1718
easy access in R. 
1718
easy access in R. 
1719
<br><dt><strong>RArcInfo</strong>
1719
<br><dt><strong>RArcInfo</strong>
1720
     <dd>Functions to import Arc/Info V7.x coverages and data. 
1720
     <dd>Functions to import Arc/Info V7.x coverages and data. 
1721
<br><dt><strong>RColorBrewer</strong>
1721
<br><dt><strong>RColorBrewer</strong>
1722
     <dd>ColorBrewer palettes for drawing nice maps shaded according to a
1722
     <dd>ColorBrewer palettes for drawing nice maps shaded according to a
1723
variable. 
1723
variable. 
1724
<br><dt><strong>RMySQL</strong>
1724
<br><dt><strong>RMySQL</strong>
1725
     <dd>An interface between R and the MySQL database system. 
1725
     <dd>An interface between R and the MySQL database system. 
1726
<br><dt><strong>RODBC</strong>
1726
<br><dt><strong>RODBC</strong>
1727
     <dd>An <small>ODBC</small> database interface. 
1727
     <dd>An <small>ODBC</small> database interface. 
1728
<br><dt><strong>ROracle</strong>
1728
<br><dt><strong>ROracle</strong>
1729
     <dd>Oracle Database Interface driver for R.  Uses the ProC/C++ embedded SQL. 
1729
     <dd>Oracle Database Interface driver for R.  Uses the ProC/C++ embedded SQL. 
1730
<br><dt><strong>RQuantLib</strong>
1730
<br><dt><strong>RQuantLib</strong>
1731
     <dd>Provides access to (some) of the QuantLib functions from within R;
1731
     <dd>Provides access to (some) of the QuantLib functions from within R;
1732
currently limited to some Option pricing and analysis functions.  The
1732
currently limited to some Option pricing and analysis functions.  The
1733
QuantLib project aims to provide a comprehensive software framework for
1733
QuantLib project aims to provide a comprehensive software framework for
1734
quantitative finance. 
1734
quantitative finance. 
1735
<br><dt><strong>RSQLite</strong>
1735
<br><dt><strong>RSQLite</strong>
1736
     <dd>Database Interface R driver for SQLite.  Embeds the SQLite database
1736
     <dd>Database Interface R driver for SQLite.  Embeds the SQLite database
1737
engine in R. 
1737
engine in R. 
1738
<br><dt><strong>RSvgDevice</strong>
1738
<br><dt><strong>RSvgDevice</strong>
1739
     <dd>A graphics device for R that uses the new w3.org <small>XML</small> standard for
1739
     <dd>A graphics device for R that uses the new w3.org <small>XML</small> standard for
1740
Scalable Vector Graphics. 
1740
Scalable Vector Graphics. 
1741
<br><dt><strong>RadioSonde</strong>
1741
<br><dt><strong>RadioSonde</strong>
1742
     <dd>A collection of programs for reading and plotting SKEW-T,log p diagrams
1742
     <dd>A collection of programs for reading and plotting SKEW-T,log p diagrams
1743
and wind profiles for data collected by radiosondes (the typical weather
1743
and wind profiles for data collected by radiosondes (the typical weather
1744
balloon-borne instrument). 
1744
balloon-borne instrument). 
1745
<br><dt><strong>RandomFields</strong>
1745
<br><dt><strong>RandomFields</strong>
1746
     <dd>Creating random fields using various methods. 
1746
     <dd>Creating random fields using various methods. 
1747
<br><dt><strong>Rcmdr</strong>
1747
<br><dt><strong>Rcmdr</strong>
1748
     <dd>A platform-independent basic-statistics GUI (graphical user interface)
1748
     <dd>A platform-independent basic-statistics GUI (graphical user interface)
1749
for R, based on the <strong>tcltk</strong> package. 
1749
for R, based on the <strong>tcltk</strong> package. 
1750
<br><dt><strong>RmSQL</strong>
1750
<br><dt><strong>RmSQL</strong>
1751
     <dd>An interface between R and the mSQL database system. 
1751
     <dd>An interface between R and the mSQL database system. 
1752
<br><dt><strong>Rwave</strong>
1752
<br><dt><strong>Rwave</strong>
1753
     <dd>An environment for the time-frequency analysis of 1-D signals (and
1753
     <dd>An environment for the time-frequency analysis of 1-D signals (and
1754
especially for the wavelet and Gabor transforms of noisy signals), based
1754
especially for the wavelet and Gabor transforms of noisy signals), based
1755
on the book "Practical Time-Frequency Analysis: Gabor and Wavelet
1755
on the book "Practical Time-Frequency Analysis: Gabor and Wavelet
1756
Transforms with an Implementation in S" by Rene Carmona, Wen L. Hwang
1756
Transforms with an Implementation in S" by Rene Carmona, Wen L. Hwang
1757
and Bruno Torresani, 1998, Academic Press. 
1757
and Bruno Torresani, 1998, Academic Press. 
1758
<br><dt><strong>SASmixed</strong>
1758
<br><dt><strong>SASmixed</strong>
1759
     <dd>Data sets and sample linear mixed effects analyses corresponding to the
1759
     <dd>Data sets and sample linear mixed effects analyses corresponding to the
1760
examples in "SAS System for Mixed Models" by R. C. Littell,
1760
examples in "SAS System for Mixed Models" by R. C. Littell,
1761
G. A. Milliken, W. W. Stroup and R. D. Wolfinger, 1996, SAS Institute. 
1761
G. A. Milliken, W. W. Stroup and R. D. Wolfinger, 1996, SAS Institute. 
1762
<br><dt><strong>SenSrivastava</strong>
1762
<br><dt><strong>SenSrivastava</strong>
1763
     <dd>Collection of datasets from "Regression Analysis, Theory, Methods and
1763
     <dd>Collection of datasets from "Regression Analysis, Theory, Methods and
1764
Applications" by A. Sen and M. Srivastava, 1990, Springer-Verlag. 
1764
Applications" by A. Sen and M. Srivastava, 1990, Springer-Verlag. 
1765
<br><dt><strong>SoPhy</strong>
1765
<br><dt><strong>SoPhy</strong>
1766
     <dd>Soil Physics Tools: simulation of water flux and solute transport in
1766
     <dd>Soil Physics Tools: simulation of water flux and solute transport in
1767
soil. 
1767
soil. 
1768
<br><dt><strong>SparseM</strong>
1768
<br><dt><strong>SparseM</strong>
1769
     <dd>Basic linear algebra for sparse matrices. 
1769
     <dd>Basic linear algebra for sparse matrices. 
1770
<br><dt><strong>StatDataML</strong>
1770
<br><dt><strong>StatDataML</strong>
1771
     <dd>Read and write StatDataML. 
1771
     <dd>Read and write StatDataML. 
1772
<br><dt><strong>SuppDists</strong>
1772
<br><dt><strong>SuppDists</strong>
1773
     <dd>Ten distributions supplementing those built into R (Inverse Gauss,
1773
     <dd>Ten distributions supplementing those built into R (Inverse Gauss,
1774
Kruskal-Wallis, Kendall's Tau, Friedman's chi squared, Spearman's rho,
1774
Kruskal-Wallis, Kendall's Tau, Friedman's chi squared, Spearman's rho,
1775
maximum F ratio, the Pearson product moment correlation coefficiant,
1775
maximum F ratio, the Pearson product moment correlation coefficiant,
1776
Johnson distributions, normal scores and generalized hypergeometric
1776
Johnson distributions, normal scores and generalized hypergeometric
1777
distributions). 
1777
distributions). 
1778
<br><dt><strong>VLMC</strong>
1778
<br><dt><strong>VLMC</strong>
1779
     <dd>Functions, classes &amp; methods for estimation, prediction, and simulation
1779
     <dd>Functions, classes &amp; methods for estimation, prediction, and simulation
1780
(bootstrap) of VLMC (Variable Length Markov Chain) models. 
1780
(bootstrap) of VLMC (Variable Length Markov Chain) models. 
1781
<br><dt><strong>VaR</strong>
1781
<br><dt><strong>VaR</strong>
1782
     <dd>Methods for calculation of Value at Risk (VaR). 
1782
     <dd>Methods for calculation of Value at Risk (VaR). 
1783
<br><dt><strong>XML</strong>
1783
<br><dt><strong>XML</strong>
1784
     <dd>Facilities for reading <small>XML</small> documents and DTDs. 
1784
     <dd>Facilities for reading <small>XML</small> documents and DTDs. 
1785
<br><dt><strong>abind</strong>
1785
<br><dt><strong>abind</strong>
1786
     <dd>Combine multi-dimensional arrays. 
1786
     <dd>Combine multi-dimensional arrays. 
1787
<br><dt><strong>acepack</strong>
1787
<br><dt><strong>acepack</strong>
1788
     <dd>ACE (Alternating Conditional Expectations) and AVAS (Additivity and
1788
     <dd>ACE (Alternating Conditional Expectations) and AVAS (Additivity and
1789
VAriance Stabilization for regression) methods for selecting regression
1789
VAriance Stabilization for regression) methods for selecting regression
1790
transformations. 
1790
transformations. 
1791
<br><dt><strong>adapt</strong>
1791
<br><dt><strong>adapt</strong>
1792
     <dd>Adaptive quadrature in up to 20 dimensions. 
1792
     <dd>Adaptive quadrature in up to 20 dimensions. 
1793
<br><dt><strong>ade4</strong>
1793
<br><dt><strong>ade4</strong>
1794
     <dd>Multivariate data analysis and graphical display. 
1794
     <dd>Multivariate data analysis and graphical display. 
1795
<br><dt><strong>agce</strong>
1795
<br><dt><strong>agce</strong>
1796
     <dd>Analysis of growth curve experiments. 
1796
     <dd>Analysis of growth curve experiments. 
1797
<br><dt><strong>akima</strong>
1797
<br><dt><strong>akima</strong>
1798
     <dd>Linear or cubic spline interpolation for irregularly gridded data. 
1798
     <dd>Linear or cubic spline interpolation for irregularly gridded data. 
1799
<br><dt><strong>amap</strong>
1799
<br><dt><strong>amap</strong>
1800
     <dd>Another Multidimensional Analysis Package. 
1800
     <dd>Another Multidimensional Analysis Package. 
1801
<br><dt><strong>anm</strong>
1801
<br><dt><strong>anm</strong>
1802
     <dd>Analog model for statistical/empirical downscaling. 
1802
     <dd>Analog model for statistical/empirical downscaling. 
1803
<br><dt><strong>ape</strong>
1803
<br><dt><strong>ape</strong>
1804
     <dd>Analyses of Phylogenetics and Evolution, providing functions for reading
1804
     <dd>Analyses of Phylogenetics and Evolution, providing functions for reading
1805
and plotting phylogenetic trees in parenthetic format (standard Newick
1805
and plotting phylogenetic trees in parenthetic format (standard Newick
1806
format), analyses of comparative data in a phylogenetic framework,
1806
format), analyses of comparative data in a phylogenetic framework,
1807
analyses of diversification and macroevolution, computing distances from
1807
analyses of diversification and macroevolution, computing distances from
1808
allelic and nucleotide data, reading nucleotide sequences from GenBank
1808
allelic and nucleotide data, reading nucleotide sequences from GenBank
1809
via internet, and several tools such as Mantel's test, computation of
1809
via internet, and several tools such as Mantel's test, computation of
1810
minimum spanning tree, or the population parameter theta based on
1810
minimum spanning tree, or the population parameter theta based on
1811
various approaches. 
1811
various approaches. 
1812
<br><dt><strong>ash</strong>
1812
<br><dt><strong>ash</strong>
1813
     <dd>David Scott's ASH routines for 1D and 2D density estimation. 
1813
     <dd>David Scott's ASH routines for 1D and 2D density estimation. 
1814
<br><dt><strong>assist</strong>
1814
<br><dt><strong>assist</strong>
1815
     <dd>A suite of functions implementing smoothing splines. 
1815
     <dd>A suite of functions implementing smoothing splines. 
1816
<br><dt><strong>asypow</strong>
1816
<br><dt><strong>asypow</strong>
1817
     <dd>A set of routines that calculate power and related quantities utilizing
1817
     <dd>A set of routines that calculate power and related quantities utilizing
1818
asymptotic likelihood ratio methods. 
1818
asymptotic likelihood ratio methods. 
1819
<br><dt><strong>aws</strong>
1819
<br><dt><strong>aws</strong>
1820
     <dd>Functions to perform adaptive weights smoothing. 
1820
     <dd>Functions to perform adaptive weights smoothing. 
1821
<br><dt><strong>bim</strong>
1821
<br><dt><strong>bim</strong>
1822
     <dd>Bayesian interval mapping diagnostics:  functions to interpret QTLCart
1822
     <dd>Bayesian interval mapping diagnostics:  functions to interpret QTLCart
1823
and Bmapqtl samples. 
1823
and Bmapqtl samples. 
1824
<br><dt><strong>bindata</strong>
1824
<br><dt><strong>bindata</strong>
1825
     <dd>Generation of correlated artificial binary data. 
1825
     <dd>Generation of correlated artificial binary data. 
1826
<br><dt><strong>blighty</strong>
1826
<br><dt><strong>blighty</strong>
1827
     <dd>Function for drawing the coastline of the United Kingdom. 
1827
     <dd>Function for drawing the coastline of the United Kingdom. 
1828
<br><dt><strong>boolean</strong>
1828
<br><dt><strong>boolean</strong>
1829
     <dd>Boolean logit and probit: a procedure for testing Boolean hypotheses. 
1829
     <dd>Boolean logit and probit: a procedure for testing Boolean hypotheses. 
1830
<br><dt><strong>boot</strong>
1830
<br><dt><strong>boot</strong>
1831
     <dd>Functions and datasets for bootstrapping from the book "Bootstrap
1831
     <dd>Functions and datasets for bootstrapping from the book "Bootstrap
1832
Methods and Their Applications" by A. C. Davison and D. V. Hinkley,
1832
Methods and Their Applications" by A. C. Davison and D. V. Hinkley,
1833
1997, Cambridge University Press.  <em>Recommended</em>. 
1833
1997, Cambridge University Press.  <em>Recommended</em>. 
1834
<br><dt><strong>bootstrap</strong>
1834
<br><dt><strong>bootstrap</strong>
1835
     <dd>Software (bootstrap, cross-validation, jackknife), data and errata for
1835
     <dd>Software (bootstrap, cross-validation, jackknife), data and errata for
1836
the book "An Introduction to the Bootstrap" by B. Efron and
1836
the book "An Introduction to the Bootstrap" by B. Efron and
1837
R. Tibshirani, 1993, Chapman and Hall. 
1837
R. Tibshirani, 1993, Chapman and Hall. 
1838
<br><dt><strong>bqtl</strong>
1838
<br><dt><strong>bqtl</strong>
1839
     <dd>QTL mapping toolkit for inbred crosses and recombinant inbred lines. 
1839
     <dd>QTL mapping toolkit for inbred crosses and recombinant inbred lines. 
1840
Includes maximum likelihood and Bayesian tools. 
1840
Includes maximum likelihood and Bayesian tools. 
1841
<br><dt><strong>brlr</strong>
1841
<br><dt><strong>brlr</strong>
1842
     <dd>Bias-reduced logistic regression: fits logistic regression models by
1842
     <dd>Bias-reduced logistic regression: fits logistic regression models by
1843
maximum penalized likelihood. 
1843
maximum penalized likelihood. 
1844
<br><dt><strong>car</strong>
1844
<br><dt><strong>car</strong>
1845
     <dd>Companion to Applied Regression, containing functions for applied
1845
     <dd>Companion to Applied Regression, containing functions for applied
1846
regession, linear models, and generalized linear models, with an
1846
regession, linear models, and generalized linear models, with an
1847
emphasis on regression diagnostics, particularly graphical diagnostic
1847
emphasis on regression diagnostics, particularly graphical diagnostic
1848
methods. 
1848
methods. 
1849
<br><dt><strong>cat</strong>
1849
<br><dt><strong>cat</strong>
1850
     <dd>Analysis of categorical-variable datasets with missing values. 
1850
     <dd>Analysis of categorical-variable datasets with missing values. 
1851
<br><dt><strong>cclust</strong>
1851
<br><dt><strong>cclust</strong>
1852
     <dd>Convex clustering methods, including k-means algorithm, on-line
1852
     <dd>Convex clustering methods, including k-means algorithm, on-line
1853
update algorithm (Hard Competitive Learning) and Neural Gas algorithm
1853
update algorithm (Hard Competitive Learning) and Neural Gas algorithm
1854
(Soft Competitive Learning) and calculation of several indexes for
1854
(Soft Competitive Learning) and calculation of several indexes for
1855
finding the number of clusters in a data set. 
1855
finding the number of clusters in a data set. 
1856
<br><dt><strong>cfa</strong>
1856
<br><dt><strong>cfa</strong>
1857
     <dd>Analysis of configuration frequencies. 
1857
     <dd>Analysis of configuration frequencies. 
1858
<br><dt><strong>chron</strong>
1858
<br><dt><strong>chron</strong>
1859
     <dd>A package for working with chronological objects (times and dates). 
1859
     <dd>A package for working with chronological objects (times and dates). 
1860
<br><dt><strong>class</strong>
1860
<br><dt><strong>class</strong>
1861
     <dd>Functions for classification (k-nearest neighbor and LVQ). 
1861
     <dd>Functions for classification (k-nearest neighbor and LVQ). 
1862
Contained in the <code>VR</code> bundle.  <em>Recommended</em>. 
1862
Contained in the <code>VR</code> bundle.  <em>Recommended</em>. 
1863
<br><dt><strong>classPP</strong>
1863
<br><dt><strong>classPP</strong>
1864
     <dd>Projection Pursuit for supervised classification. 
1864
     <dd>Projection Pursuit for supervised classification. 
1865
<br><dt><strong>clim.pact</strong>
1865
<br><dt><strong>clim.pact</strong>
1866
     <dd>Climate analysis and downscaling for monthly and daily data. 
1866
     <dd>Climate analysis and downscaling for monthly and daily data. 
1867
<br><dt><strong>clines</strong>
1867
<br><dt><strong>clines</strong>
1868
     <dd>Calculates Contour Lines. 
1868
     <dd>Calculates Contour Lines. 
1869
<br><dt><strong>cluster</strong>
1869
<br><dt><strong>cluster</strong>
1870
     <dd>Functions for cluster analysis.  <em>Recommended</em>. 
1870
     <dd>Functions for cluster analysis.  <em>Recommended</em>. 
1871
<br><dt><strong>cmprsk</strong>
1871
<br><dt><strong>cmprsk</strong>
1872
     <dd>Estimation, testing and regression modeling of subdistribution functions
1872
     <dd>Estimation, testing and regression modeling of subdistribution functions
1873
in competing risks. 
1873
in competing risks. 
1874
<br><dt><strong>cobs</strong>
1874
<br><dt><strong>cobs</strong>
1875
     <dd>Constrained B-splines: qualitatively constrained (regression) smoothing
1875
     <dd>Constrained B-splines: qualitatively constrained (regression) smoothing
1876
via linear programming. 
1876
via linear programming. 
1877
<br><dt><strong>coda</strong>
1877
<br><dt><strong>coda</strong>
1878
     <dd>Output analysis and diagnostics for Markov Chain Monte Carlo (MCMC)
1878
     <dd>Output analysis and diagnostics for Markov Chain Monte Carlo (MCMC)
1879
simulations. 
1879
simulations. 
1880
<br><dt><strong>combinat</strong>
1880
<br><dt><strong>combinat</strong>
1881
     <dd>Combinatorics utilities. 
1881
     <dd>Combinatorics utilities. 
1882
<br><dt><strong>concord</strong>
1882
<br><dt><strong>concord</strong>
1883
     <dd>Measures of concordance and reliability. 
1883
     <dd>Measures of concordance and reliability. 
1884
<br><dt><strong>conf.design</strong>
1884
<br><dt><strong>conf.design</strong>
1885
     <dd>A series of simple tools for constructing and manipulating confounded
1885
     <dd>A series of simple tools for constructing and manipulating confounded
1886
and fractional factorial designs. 
1886
and fractional factorial designs. 
1887
<br><dt><strong>covRobust</strong>
1887
<br><dt><strong>covRobust</strong>
1888
     <dd>Robust covariance estimation via nearest neighbor cleaning. 
1888
     <dd>Robust covariance estimation via nearest neighbor cleaning. 
1889
<br><dt><strong>cramer</strong>
1889
<br><dt><strong>cramer</strong>
1890
     <dd>Routine for the multivariate nonparametric Cramer test. 
1890
     <dd>Routine for the multivariate nonparametric Cramer test. 
1891
<br><dt><strong>date</strong>
1891
<br><dt><strong>date</strong>
1892
     <dd>Functions for dealing with dates.  The most useful of them accepts a
1892
     <dd>Functions for dealing with dates.  The most useful of them accepts a
1893
vector of input dates in any of the forms <code>8/30/53</code>,
1893
vector of input dates in any of the forms <code>8/30/53</code>,
1894
<code>30Aug53</code>, <code>30 August 1953</code>, <small class="dots">...</small>, <code>August 30 53</code>, or
1894
<code>30Aug53</code>, <code>30 August 1953</code>, <small class="dots">...</small>, <code>August 30 53</code>, or
1895
any mixture of these. 
1895
any mixture of these. 
1896
<br><dt><strong>dblcens</strong>
1896
<br><dt><strong>dblcens</strong>
1897
     <dd>Calculates the NPMLE of the survival distribution for doubly censored
1897
     <dd>Calculates the NPMLE of the survival distribution for doubly censored
1898
data. 
1898
data. 
1899
<br><dt><strong>deal</strong>
1899
<br><dt><strong>deal</strong>
1900
     <dd>Bayesian networks with continuous and/or discrete variables can be
1900
     <dd>Bayesian networks with continuous and/or discrete variables can be
1901
learned and compared from data. 
1901
learned and compared from data. 
1902
<br><dt><strong>debug</strong>
1902
<br><dt><strong>debug</strong>
1903
     <dd>Debugger for R functions, with code display, graceful error recovery,
1903
     <dd>Debugger for R functions, with code display, graceful error recovery,
1904
line-numbered conditional breakpoints, access to exit code, flow
1904
line-numbered conditional breakpoints, access to exit code, flow
1905
control, and full keyboard input. 
1905
control, and full keyboard input. 
1906
<br><dt><strong>deldir</strong>
1906
<br><dt><strong>deldir</strong>
1907
     <dd>Calculates the  Delaunay triangulation and the Dirichlet or Voronoi
1907
     <dd>Calculates the  Delaunay triangulation and the Dirichlet or Voronoi
1908
tesselation (with respect to the entire plane) of a planar point set. 
1908
tesselation (with respect to the entire plane) of a planar point set. 
1909
<br><dt><strong>diamonds</strong>
1909
<br><dt><strong>diamonds</strong>
1910
     <dd>Functions for illustrating aperture-4 diamond partitions in the plane,
1910
     <dd>Functions for illustrating aperture-4 diamond partitions in the plane,
1911
or on the surface of an octahedron or icosahedron, for use as analysis
1911
or on the surface of an octahedron or icosahedron, for use as analysis
1912
or sampling grids. 
1912
or sampling grids. 
1913
<br><dt><strong>dichromat</strong>
1913
<br><dt><strong>dichromat</strong>
1914
     <dd>Color schemes for dichromats: collapse red-green distinctions to
1914
     <dd>Color schemes for dichromats: collapse red-green distinctions to
1915
simulate the effects of colour-blindness. 
1915
simulate the effects of colour-blindness. 
1916
<br><dt><strong>digest</strong>
1916
<br><dt><strong>digest</strong>
1917
     <dd>Two functions for the creation of "hash" digests of arbitrary R
1917
     <dd>Two functions for the creation of "hash" digests of arbitrary R
1918
objects using the md5 and sha-1 algorithms permitting easy comparison of
1918
objects using the md5 and sha-1 algorithms permitting easy comparison of
1919
R language objects. 
1919
R language objects. 
1920
<br><dt><strong>diptest</strong>
1920
<br><dt><strong>diptest</strong>
1921
     <dd>Compute Hartigan's dip test statistic for unimodality. 
1921
     <dd>Compute Hartigan's dip test statistic for unimodality. 
1922
<br><dt><strong>dispmod</strong>
1922
<br><dt><strong>dispmod</strong>
1923
     <dd>Functions for modelling dispersion in GLMs. 
1923
     <dd>Functions for modelling dispersion in GLMs. 
1924
<br><dt><strong>dr</strong>
1924
<br><dt><strong>dr</strong>
1925
     <dd>Functions, methods, and datasets for fitting dimension reduction
1925
     <dd>Functions, methods, and datasets for fitting dimension reduction
1926
regression, including pHd and inverse regression methods SIR and SAVE. 
1926
regression, including pHd and inverse regression methods SIR and SAVE. 
1927
<br><dt><strong>dse</strong>
1927
<br><dt><strong>dse</strong>
1928
     <dd>Dynamic System Estimation, a multivariate time series package.  Contains
1928
     <dd>Dynamic System Estimation, a multivariate time series package.  Contains
1929
<strong>dse1</strong> (the base system, including multivariate ARMA and state
1929
<strong>dse1</strong> (the base system, including multivariate ARMA and state
1930
space models), <strong>dse2</strong> (extensions for evaluating estimation
1930
space models), <strong>dse2</strong> (extensions for evaluating estimation
1931
techniques, forecasting, and for evaluating forecasting model),
1931
techniques, forecasting, and for evaluating forecasting model),
1932
<strong>tframe</strong> (functions for writing code that is independent of the
1932
<strong>tframe</strong> (functions for writing code that is independent of the
1933
representation of time). and <strong>setRNG</strong> (a mechanism for generating
1933
representation of time). and <strong>setRNG</strong> (a mechanism for generating
1934
the same random numbers in S and R). 
1934
the same random numbers in S and R). 
1935
<br><dt><strong>dynamicGraph</strong>
1935
<br><dt><strong>dynamicGraph</strong>
1936
     <dd>Interactive graphical tool for manipulating graphs. 
1936
     <dd>Interactive graphical tool for manipulating graphs. 
1937
<br><dt><strong>e1071</strong>
1937
<br><dt><strong>e1071</strong>
1938
     <dd>Miscellaneous functions used at the Department of Statistics at TU Wien
1938
     <dd>Miscellaneous functions used at the Department of Statistics at TU Wien
1939
(E1071), including moments, short-time Fourier transforms, Independent
1939
(E1071), including moments, short-time Fourier transforms, Independent
1940
Component Analysis, Latent Class Analysis, support vector machines, and
1940
Component Analysis, Latent Class Analysis, support vector machines, and
1941
fuzzy clustering, shortest path computation, bagged clustering, and some
1941
fuzzy clustering, shortest path computation, bagged clustering, and some
1942
more. 
1942
more. 
1943
<br><dt><strong>effects</strong>
1943
<br><dt><strong>effects</strong>
1944
     <dd>Graphical and tabular effect displays, e.g., of interactions, for linear
1944
     <dd>Graphical and tabular effect displays, e.g., of interactions, for linear
1945
and generalised linear models. 
1945
and generalised linear models. 
1946
<br><dt><strong>eha</strong>
1946
<br><dt><strong>eha</strong>
1947
     <dd>A package for survival and event history analysis. 
1947
     <dd>A package for survival and event history analysis. 
1948
<br><dt><strong>ellipse</strong>
1948
<br><dt><strong>ellipse</strong>
1949
     <dd>Package for drawing ellipses and ellipse-like confidence regions. 
1949
     <dd>Package for drawing ellipses and ellipse-like confidence regions. 
1950
<br><dt><strong>emme2</strong>
1950
<br><dt><strong>emme2</strong>
1951
     <dd>Functions to read from and write to an EMME/2 databank. 
1951
     <dd>Functions to read from and write to an EMME/2 databank. 
1952
<br><dt><strong>emplik</strong>
1952
<br><dt><strong>emplik</strong>
1953
     <dd>Empirical likelihood ratio for means/quantiles/hazards from possibly
1953
     <dd>Empirical likelihood ratio for means/quantiles/hazards from possibly
1954
right censored data. 
1954
right censored data. 
1955
<br><dt><strong>energy</strong>
1955
<br><dt><strong>energy</strong>
1956
     <dd>E-statistics (energy) tests for comparing distributions: multivariate
1956
     <dd>E-statistics (energy) tests for comparing distributions: multivariate
1957
normality, Poisson test, multivariate k-sample test for equal
1957
normality, Poisson test, multivariate k-sample test for equal
1958
distributions, hierarchical clustering by e-distances. 
1958
distributions, hierarchical clustering by e-distances. 
1959
<br><dt><strong>evd</strong>
1959
<br><dt><strong>evd</strong>
1960
     <dd>Functions for extreme value distributions.  Extends simulation,
1960
     <dd>Functions for extreme value distributions.  Extends simulation,
1961
distribution, quantile and density functions to univariate, bivariate
1961
distribution, quantile and density functions to univariate, bivariate
1962
and (for simulation) multivariate parametric extreme value
1962
and (for simulation) multivariate parametric extreme value
1963
distributions, and provides fitting functions which calculate maximum
1963
distributions, and provides fitting functions which calculate maximum
1964
likelihood estimates for univariate and bivariate models. 
1964
likelihood estimates for univariate and bivariate models. 
1965
<br><dt><strong>exactLoglinTest</strong>
1965
<br><dt><strong>exactLoglinTest</strong>
1966
     <dd>Monte Carlo exact tests for log-linear models. 
1966
     <dd>Monte Carlo exact tests for log-linear models. 
1967
<br><dt><strong>exactRankTests</strong>
1967
<br><dt><strong>exactRankTests</strong>
1968
     <dd>Computes exact p-values and quantiles using an implementation of
1968
     <dd>Computes exact p-values and quantiles using an implementation of
1969
the Streitberg/Roehmel shift algorithm. 
1969
the Streitberg/Roehmel shift algorithm. 
1970
<br><dt><strong>fastICA</strong>
1970
<br><dt><strong>fastICA</strong>
1971
     <dd>Implementation of FastICA algorithm to perform Independent Component
1971
     <dd>Implementation of FastICA algorithm to perform Independent Component
1972
Analysis (ICA) and Projection Pursuit. 
1972
Analysis (ICA) and Projection Pursuit. 
1973
<br><dt><strong>fda</strong>
1973
<br><dt><strong>fda</strong>
1974
     <dd>Functional Data Analysis: analysis of data where the basic observation
1974
     <dd>Functional Data Analysis: analysis of data where the basic observation
1975
is a function of some sort. 
1975
is a function of some sort. 
1976
<br><dt><strong>fdim</strong>
1976
<br><dt><strong>fdim</strong>
1977
     <dd>Functions for calculating fractal dimension. 
1977
     <dd>Functions for calculating fractal dimension. 
1978
<br><dt><strong>fields</strong>
1978
<br><dt><strong>fields</strong>
1979
     <dd>A collection of programs for curve and function fitting with an emphasis
1979
     <dd>A collection of programs for curve and function fitting with an emphasis
1980
on spatial data.  The major methods implemented include cubic and thin
1980
on spatial data.  The major methods implemented include cubic and thin
1981
plate splines, universal Kriging and Kriging for large data sets.  The
1981
plate splines, universal Kriging and Kriging for large data sets.  The
1982
main feature is that any covariance function implemented in R can be
1982
main feature is that any covariance function implemented in R can be
1983
used for spatial prediction. 
1983
used for spatial prediction. 
1984
<br><dt><strong>flexmix</strong>
1984
<br><dt><strong>flexmix</strong>
1985
     <dd>Flexible Mixture Modeling: a general framework for finite mixtures of
1985
     <dd>Flexible Mixture Modeling: a general framework for finite mixtures of
1986
regression models using the EM algorithm. 
1986
regression models using the EM algorithm. 
1987
<br><dt><strong>foreign</strong>
1987
<br><dt><strong>foreign</strong>
1988
     <dd>Functions for reading and writing data stored by statistical software
1988
     <dd>Functions for reading and writing data stored by statistical software
1989
like Minitab, SAS, SPSS, Stata, etc.  <em>Recommended</em>. 
1989
like Minitab, SAS, SPSS, Stata, etc.  <em>Recommended</em>. 
1990
<br><dt><strong>fork</strong>
1990
<br><dt><strong>fork</strong>
1991
     <dd>Functions for handling multiple processes: simple wrappers around the
1991
     <dd>Functions for handling multiple processes: simple wrappers around the
1992
Unix process management API calls. 
1992
Unix process management API calls. 
1993
<br><dt><strong>forward</strong>
1993
<br><dt><strong>forward</strong>
1994
     <dd>Forward search approach to robust analysis in linear and generalized
1994
     <dd>Forward search approach to robust analysis in linear and generalized
1995
linear regression models. 
1995
linear regression models. 
1996
<br><dt><strong>fpc</strong>
1996
<br><dt><strong>fpc</strong>
1997
     <dd>Fixed point clusters, clusterwise regression and discriminant plots. 
1997
     <dd>Fixed point clusters, clusterwise regression and discriminant plots. 
1998
<br><dt><strong>fracdiff</strong>
1998
<br><dt><strong>fracdiff</strong>
1999
     <dd>Maximum likelihood estimation of the parameters of a fractionally
1999
     <dd>Maximum likelihood estimation of the parameters of a fractionally
2000
differenced ARIMA(p,d,q) model (Haslett and Raftery, Applied
2000
differenced ARIMA(p,d,q) model (Haslett and Raftery, Applied
2001
Statistics, 1989). 
2001
Statistics, 1989). 
2002
<br><dt><strong>ftnonpar</strong>
2002
<br><dt><strong>ftnonpar</strong>
2003
     <dd>Features and strings for nonparametric regression. 
2003
     <dd>Features and strings for nonparametric regression. 
2004
<br><dt><strong>g.data</strong>
2004
<br><dt><strong>g.data</strong>
2005
     <dd>Create and maintain delayed-data packages (DDP's). 
2005
     <dd>Create and maintain delayed-data packages (DDP's). 
2006
<br><dt><strong>gafit</strong>
2006
<br><dt><strong>gafit</strong>
2007
     <dd>Genetic algorithm for curve fitting. 
2007
     <dd>Genetic algorithm for curve fitting. 
2008
<br><dt><strong>gap</strong>
2008
<br><dt><strong>gap</strong>
2009
     <dd>Genetic analysis package for both population and family data. 
2009
     <dd>Genetic analysis package for both population and family data. 
2010
<br><dt><strong>gbm</strong>
2010
<br><dt><strong>gbm</strong>
2011
     <dd>Generalized Boosted Regression Models: implements extensions to Freund
2011
     <dd>Generalized Boosted Regression Models: implements extensions to Freund
2012
and Schapire's AdaBoost algorithm and J. Friedman's gradient boosting
2012
and Schapire's AdaBoost algorithm and J. Friedman's gradient boosting
2013
machine.  Includes regression methods for least squares, absolute loss,
2013
machine.  Includes regression methods for least squares, absolute loss,
2014
logistic, Poisson, Cox proportional hazards partial likelihood, and
2014
logistic, Poisson, Cox proportional hazards partial likelihood, and
2015
AdaBoost exponential loss. 
2015
AdaBoost exponential loss. 
2016
<br><dt><strong>gclus</strong>
2016
<br><dt><strong>gclus</strong>
2017
     <dd>Clustering Graphics.  Orders panels in scatterplot matrices and parallel
2017
     <dd>Clustering Graphics.  Orders panels in scatterplot matrices and parallel
2018
coordinate displays by some merit index. 
2018
coordinate displays by some merit index. 
2019
<br><dt><strong>gee</strong>
2019
<br><dt><strong>gee</strong>
2020
     <dd>An implementation of the Liang/Zeger generalized estimating equation
2020
     <dd>An implementation of the Liang/Zeger generalized estimating equation
2021
approach to GLMs for dependent data. 
2021
approach to GLMs for dependent data. 
2022
<br><dt><strong>geepack</strong>
2022
<br><dt><strong>geepack</strong>
2023
     <dd>Generalized estimating equations solver for parameters in mean, scale,
2023
     <dd>Generalized estimating equations solver for parameters in mean, scale,
2024
and correlation structures, through mean link, scale link, and
2024
and correlation structures, through mean link, scale link, and
2025
correlation link.  Can also handle clustered categorical responses. 
2025
correlation link.  Can also handle clustered categorical responses. 
2026
<br><dt><strong>genetics</strong>
2026
<br><dt><strong>genetics</strong>
2027
     <dd>Classes and methods for handling genetic data.  Includes classes to
2027
     <dd>Classes and methods for handling genetic data.  Includes classes to
2028
represent genotypes and haplotypes at single markers up to multiple
2028
represent genotypes and haplotypes at single markers up to multiple
2029
markers on multiple chromosomes, and functions for allele frequencies,
2029
markers on multiple chromosomes, and functions for allele frequencies,
2030
flagging homo/heterozygotes, flagging carriers of certain alleles,
2030
flagging homo/heterozygotes, flagging carriers of certain alleles,
2031
computing disequlibrium, testing Hardy-Weinberg equilibrium, <small class="dots">...</small>
2031
computing disequlibrium, testing Hardy-Weinberg equilibrium, <small class="dots">...</small>
2032
<br><dt><strong>geoR</strong>
2032
<br><dt><strong>geoR</strong>
2033
     <dd>Functions to perform geostatistical data analysis including model-based
2033
     <dd>Functions to perform geostatistical data analysis including model-based
2034
methods. 
2034
methods. 
2035
<br><dt><strong>geoRglm</strong>
2035
<br><dt><strong>geoRglm</strong>
2036
     <dd>Functions for inference in generalised linear spatial models. 
2036
     <dd>Functions for inference in generalised linear spatial models. 
2037
<br><dt><strong>ggm</strong>
2037
<br><dt><strong>ggm</strong>
2038
     <dd>Functions for defining directed acyclic graphs and undirected graphs,
2038
     <dd>Functions for defining directed acyclic graphs and undirected graphs,
2039
finding induced graphs and fitting Gaussian Markov models. 
2039
finding induced graphs and fitting Gaussian Markov models. 
2040
<br><dt><strong>gld</strong>
2040
<br><dt><strong>gld</strong>
2041
     <dd>Basic functions for the generalised (Tukey) lambda distribution. 
2041
     <dd>Basic functions for the generalised (Tukey) lambda distribution. 
2042
<br><dt><strong>gllm</strong>
2042
<br><dt><strong>gllm</strong>
2043
     <dd>Routines for log-linear models of incomplete contingency tables,
2043
     <dd>Routines for log-linear models of incomplete contingency tables,
2044
including some latent class models via EM and Fisher scoring approaches. 
2044
including some latent class models via EM and Fisher scoring approaches. 
2045
<br><dt><strong>glmmML</strong>
2045
<br><dt><strong>glmmML</strong>
2046
     <dd>A Maximum Likelihood approach to generalized linear models with random
2046
     <dd>A Maximum Likelihood approach to generalized linear models with random
2047
intercept. 
2047
intercept. 
2048
<br><dt><strong>gpclib</strong>
2048
<br><dt><strong>gpclib</strong>
2049
     <dd>General polygon clipping routines for R based on Alan Murta's C
2049
     <dd>General polygon clipping routines for R based on Alan Murta's C
2050
library. 
2050
library. 
2051
<br><dt><strong>grasper</strong>
2051
<br><dt><strong>grasper</strong>
2052
     <dd>Generalized Regression Analysis and Spatial Predictions for R. 
2052
     <dd>Generalized Regression Analysis and Spatial Predictions for R. 
2053
<br><dt><strong>gregmisc</strong>
2053
<br><dt><strong>gregmisc</strong>
2054
     <dd>Miscellaneous functions written/maintained by Gregory R. Warnes. 
2054
     <dd>Miscellaneous functions written/maintained by Gregory R. Warnes. 
2055
<br><dt><strong>gridBase</strong>
2055
<br><dt><strong>gridBase</strong>
2056
     <dd>Integration of base and grid graphics. 
2056
     <dd>Integration of base and grid graphics. 
2057
<br><dt><strong>gss</strong>
2057
<br><dt><strong>gss</strong>
2058
     <dd>A comprehensive package for structural multivariate function estimation
2058
     <dd>A comprehensive package for structural multivariate function estimation
2059
using smoothing splines. 
2059
using smoothing splines. 
2060
<br><dt><strong>gstat</strong>
2060
<br><dt><strong>gstat</strong>
2061
     <dd>multivariable geostatistical modelling, prediction and simulation. 
2061
     <dd>multivariable geostatistical modelling, prediction and simulation. 
2062
Includes code for variogram modelling; simple, ordinary and universal
2062
Includes code for variogram modelling; simple, ordinary and universal
2063
point or block (co)kriging, sequential Gaussian or indicator
2063
point or block (co)kriging, sequential Gaussian or indicator
2064
(co)simulation, and map plotting functions. 
2064
(co)simulation, and map plotting functions. 
2065
<br><dt><strong>gtkDevice</strong>
2065
<br><dt><strong>gtkDevice</strong>
2066
     <dd>GTK graphics device driver that may be used independently of the R-GNOME
2066
     <dd>GTK graphics device driver that may be used independently of the R-GNOME
2067
interface and can be used to create R devices as embedded components in
2067
interface and can be used to create R devices as embedded components in
2068
a GUI using a Gtk drawing area widget, e.g., using RGtk. 
2068
a GUI using a Gtk drawing area widget, e.g., using RGtk. 
2069
<br><dt><strong>hapassoc</strong>
2069
<br><dt><strong>hapassoc</strong>
2070
     <dd>Likelihood inference of trait associations with SNP haplotypes and other
2070
     <dd>Likelihood inference of trait associations with SNP haplotypes and other
2071
attributes using the EM Algorithm. 
2071
attributes using the EM Algorithm. 
2072
<br><dt><strong>haplo.score</strong>
2072
<br><dt><strong>haplo.score</strong>
2073
     <dd>Score tests for association of traits with haplotypes when linkage phase
2073
     <dd>Score tests for association of traits with haplotypes when linkage phase
2074
is ambiguous. 
2074
is ambiguous. 
2075
<br><dt><strong>hdf5</strong>
2075
<br><dt><strong>hdf5</strong>
2076
     <dd>Interface to the <small>NCSA</small> HDF5 library. 
2076
     <dd>Interface to the <small>NCSA</small> HDF5 library. 
2077
<br><dt><strong>hett</strong>
2077
<br><dt><strong>hett</strong>
2078
     <dd>Functions for the fitting and summarizing of heteroscedastic
2078
     <dd>Functions for the fitting and summarizing of heteroscedastic
2079
t-regression. 
2079
t-regression. 
2080
<br><dt><strong>hier.part</strong>
2080
<br><dt><strong>hier.part</strong>
2081
     <dd>Hierarchical Partitioning: variance partition of a multivariate data
2081
     <dd>Hierarchical Partitioning: variance partition of a multivariate data
2082
set. 
2082
set. 
2083
<br><dt><strong>homals</strong>
2083
<br><dt><strong>homals</strong>
2084
     <dd>Homogeneity Analysis (HOMALS) package with optional Tcl/Tk interface. 
2084
     <dd>Homogeneity Analysis (HOMALS) package with optional Tcl/Tk interface. 
2085
<br><dt><strong>hwde</strong>
2085
<br><dt><strong>hwde</strong>
2086
     <dd>Models and tests for departure from Hardy-Weinberg equilibrium and
2086
     <dd>Models and tests for departure from Hardy-Weinberg equilibrium and
2087
independence between loci. 
2087
independence between loci. 
2088
<br><dt><strong>ifs</strong>
2088
<br><dt><strong>ifs</strong>
2089
     <dd>Iterated Function Systems distribution function estimator. 
2089
     <dd>Iterated Function Systems distribution function estimator. 
2090
<br><dt><strong>impute</strong>
2090
<br><dt><strong>impute</strong>
2091
     <dd>Imputation for microarray data (currently KNN only). 
2091
     <dd>Imputation for microarray data (currently KNN only). 
2092
<br><dt><strong>ineq</strong>
2092
<br><dt><strong>ineq</strong>
2093
     <dd>Inequality, concentration and poverty measures, and Lorenz curves
2093
     <dd>Inequality, concentration and poverty measures, and Lorenz curves
2094
(empirical and theoretic). 
2094
(empirical and theoretic). 
2095
<br><dt><strong>ipred</strong>
2095
<br><dt><strong>ipred</strong>
2096
     <dd>Improved predictive models by direct and indirect bootstrap aggregation
2096
     <dd>Improved predictive models by direct and indirect bootstrap aggregation
2097
in classification and regression as well as resampling based estimators
2097
in classification and regression as well as resampling based estimators
2098
of prediction error. 
2098
of prediction error. 
2099
<br><dt><strong>ismev</strong>
2099
<br><dt><strong>ismev</strong>
2100
     <dd>Functions to support the computations carried out in "An Introduction
2100
     <dd>Functions to support the computations carried out in "An Introduction
2101
to Statistical Modeling of Extreme Values;' by S. Coles, 2001, Springer. 
2101
to Statistical Modeling of Extreme Values;' by S. Coles, 2001, Springer. 
2102
The functions may be divided into the following groups; maxima/minima,
2102
The functions may be divided into the following groups; maxima/minima,
2103
order statistics, peaks over thresholds and point processes. 
2103
order statistics, peaks over thresholds and point processes. 
2104
<br><dt><strong>its</strong>
2104
<br><dt><strong>its</strong>
2105
     <dd>An S4 class for handling irregular time series. 
2105
     <dd>An S4 class for handling irregular time series. 
2106
<br><dt><strong>kernlab</strong>
2106
<br><dt><strong>kernlab</strong>
2107
     <dd>Kernel-based machine learning methods including support vector machines. 
2107
     <dd>Kernel-based machine learning methods including support vector machines. 
2108
(Currently in <code>1.9.0/Other</code>.) 
2108
(Currently in <code>1.9.0/Other</code>.) 
2109
<br><dt><strong>knnTree</strong>
2109
<br><dt><strong>knnTree</strong>
2110
     <dd>Construct or predict with k-nearest-neighbor classifiers, using
2110
     <dd>Construct or predict with k-nearest-neighbor classifiers, using
2111
cross-validation to select k, choose variables (by forward or
2111
cross-validation to select k, choose variables (by forward or
2112
backwards selection), and choose scaling (from among no scaling, scaling
2112
backwards selection), and choose scaling (from among no scaling, scaling
2113
each column by its SD, or scaling each column by its MAD).  The finished
2113
each column by its SD, or scaling each column by its MAD).  The finished
2114
classifier will consist of a classification tree with one such
2114
classifier will consist of a classification tree with one such
2115
k-nn classifier in each leaf. 
2115
k-nn classifier in each leaf. 
2116
<br><dt><strong>labstatR</strong>
2116
<br><dt><strong>labstatR</strong>
2117
     <dd>Functions for the book "Laboratorio di statistica con R" by
2117
     <dd>Functions for the book "Laboratorio di statistica con R" by
2118
S. M. Iacus and G. Masarotto, 2002, McGraw-Hill.  Function names and
2118
S. M. Iacus and G. Masarotto, 2002, McGraw-Hill.  Function names and
2119
documentation in Italian. 
2119
documentation in Italian. 
2120
<br><dt><strong>lars</strong>
2120
<br><dt><strong>lars</strong>
2121
     <dd>Least Angle Regression, Lasso and Forward Stagewise: efficient
2121
     <dd>Least Angle Regression, Lasso and Forward Stagewise: efficient
2122
procedures for fitting an entire lasso sequence with the cost of a
2122
procedures for fitting an entire lasso sequence with the cost of a
2123
single least squares fit. 
2123
single least squares fit. 
2124
<br><dt><strong>lasso2</strong>
2124
<br><dt><strong>lasso2</strong>
2125
     <dd>Routines and documentation for solving regression problems while
2125
     <dd>Routines and documentation for solving regression problems while
2126
imposing an L1 constraint on the estimates, based on the algorithm of
2126
imposing an L1 constraint on the estimates, based on the algorithm of
2127
Osborne et al. (1998)
2127
Osborne et al. (1998)
2128
<br><dt><strong>lattice</strong>
2128
<br><dt><strong>lattice</strong>
2129
     <dd>Lattice graphics, an implementation of Trellis Graphics functions. 
2129
     <dd>Lattice graphics, an implementation of Trellis Graphics functions. 
2130
<em>Recommended</em>. 
2130
<em>Recommended</em>. 
2131
<br><dt><strong>lazy</strong>
2131
<br><dt><strong>lazy</strong>
2132
     <dd>Lazy learning for local regression. 
2132
     <dd>Lazy learning for local regression. 
2133
<br><dt><strong>ldDesign</strong>
2133
<br><dt><strong>ldDesign</strong>
2134
     <dd>Design of experiments for detection of linkage disequilibrium,
2134
     <dd>Design of experiments for detection of linkage disequilibrium,
2135
<br><dt><strong>leaps</strong>
2135
<br><dt><strong>leaps</strong>
2136
     <dd>A package which performs an exhaustive search for the best subsets of a
2136
     <dd>A package which performs an exhaustive search for the best subsets of a
2137
given set of potential regressors, using a branch-and-bound algorithm,
2137
given set of potential regressors, using a branch-and-bound algorithm,
2138
and also performs searches using a number of less time-consuming
2138
and also performs searches using a number of less time-consuming
2139
techniques. 
2139
techniques. 
2140
<br><dt><strong>lgtdl</strong>
2140
<br><dt><strong>lgtdl</strong>
2141
     <dd>A set of methods for longitudinal data objects. 
2141
     <dd>A set of methods for longitudinal data objects. 
2142
<br><dt><strong>linprog</strong>
2142
<br><dt><strong>linprog</strong>
2143
     <dd>Solve linear programming/linear optimization problems by using the
2143
     <dd>Solve linear programming/linear optimization problems by using the
2144
simplex algorithm. 
2144
simplex algorithm. 
2145
<br><dt><strong>lme4</strong>
2145
<br><dt><strong>lme4</strong>
2146
     <dd>Fit linear and generalized linear mixed-effects models. 
2146
     <dd>Fit linear and generalized linear mixed-effects models. 
2147
<br><dt><strong>lmeSplines</strong>
2147
<br><dt><strong>lmeSplines</strong>
2148
     <dd>Fit smoothing spline terms in Gaussian linear and nonlinear
2148
     <dd>Fit smoothing spline terms in Gaussian linear and nonlinear
2149
mixed-effects models. 
2149
mixed-effects models. 
2150
<br><dt><strong>lmm</strong>
2150
<br><dt><strong>lmm</strong>
2151
     <dd>Linear mixed models. 
2151
     <dd>Linear mixed models. 
2152
<br><dt><strong>lmtest</strong>
2152
<br><dt><strong>lmtest</strong>
2153
     <dd>A collection of tests on the assumptions of linear regression models
2153
     <dd>A collection of tests on the assumptions of linear regression models
2154
from the book "The linear regression model under test" by W. Kraemer
2154
from the book "The linear regression model under test" by W. Kraemer
2155
and H. Sonnberger, 1986, Physica. 
2155
and H. Sonnberger, 1986, Physica. 
2156
<br><dt><strong>locfit</strong>
2156
<br><dt><strong>locfit</strong>
2157
     <dd>Local Regression, likelihood and density estimation. 
2157
     <dd>Local Regression, likelihood and density estimation. 
2158
<br><dt><strong>logistf</strong>
2158
<br><dt><strong>logistf</strong>
2159
     <dd>Firth's bias reduced logistic regression approach with penalized profile
2159
     <dd>Firth's bias reduced logistic regression approach with penalized profile
2160
likelihood based confidence intervals for parameter estimates. 
2160
likelihood based confidence intervals for parameter estimates. 
2161
<br><dt><strong>logspline</strong>
2161
<br><dt><strong>logspline</strong>
2162
     <dd>Logspline density estimation. 
2162
     <dd>Logspline density estimation. 
2163
<br><dt><strong>lokern</strong>
2163
<br><dt><strong>lokern</strong>
2164
     <dd>Kernel regression smoothing with adaptive local or global plug-in
2164
     <dd>Kernel regression smoothing with adaptive local or global plug-in
2165
bandwidth selection. 
2165
bandwidth selection. 
2166
<br><dt><strong>lpSolve</strong>
2166
<br><dt><strong>lpSolve</strong>
2167
     <dd>Functions that solve general linear/integer problems, assignment
2167
     <dd>Functions that solve general linear/integer problems, assignment
2168
problems, and transportation problems via interfacing Lp_solve. 
2168
problems, and transportation problems via interfacing Lp_solve. 
2169
<br><dt><strong>lpridge</strong>
2169
<br><dt><strong>lpridge</strong>
2170
     <dd>Local polynomial (ridge) regression. 
2170
     <dd>Local polynomial (ridge) regression. 
2171
<br><dt><strong>magic</strong>
2171
<br><dt><strong>magic</strong>
2172
     <dd>A variety of methods for creating magic squares of any order greater
2172
     <dd>A variety of methods for creating magic squares of any order greater
2173
than 2, and various magic hypercubes. 
2173
than 2, and various magic hypercubes. 
2174
<br><dt><strong>mapdata</strong>
2174
<br><dt><strong>mapdata</strong>
2175
     <dd>Supplement to package <strong>maps</strong>, providing the larger and/or
2175
     <dd>Supplement to package <strong>maps</strong>, providing the larger and/or
2176
higher-resolution databases. 
2176
higher-resolution databases. 
2177
<br><dt><strong>mapproj</strong>
2177
<br><dt><strong>mapproj</strong>
2178
     <dd>Map Projections: converts latitude/longitude into projected coordinates. 
2178
     <dd>Map Projections: converts latitude/longitude into projected coordinates. 
2179
<br><dt><strong>maps</strong>
2179
<br><dt><strong>maps</strong>
2180
     <dd>Draw geographical maps.  Projection code and larger maps are in separate
2180
     <dd>Draw geographical maps.  Projection code and larger maps are in separate
2181
packages. 
2181
packages. 
2182
<br><dt><strong>maptools</strong>
2182
<br><dt><strong>maptools</strong>
2183
     <dd>Set of tools for manipulating and reading geographic data, in particular
2183
     <dd>Set of tools for manipulating and reading geographic data, in particular
2184
ESRI shapefiles. 
2184
ESRI shapefiles. 
2185
<br><dt><strong>maptree</strong>
2185
<br><dt><strong>maptree</strong>
2186
     <dd>Functions with example data for graphing and mapping models from
2186
     <dd>Functions with example data for graphing and mapping models from
2187
hierarchical clustering and classification and regression trees. 
2187
hierarchical clustering and classification and regression trees. 
2188
<br><dt><strong>maxstat</strong>
2188
<br><dt><strong>maxstat</strong>
2189
     <dd>Maximally selected rank and Gauss statistics with several p-value
2189
     <dd>Maximally selected rank and Gauss statistics with several p-value
2190
approximations. 
2190
approximations. 
2191
<br><dt><strong>mclust</strong>
2191
<br><dt><strong>mclust</strong>
2192
     <dd>Model-based cluster analysis: the 2002 version of MCLUST. 
2192
     <dd>Model-based cluster analysis: the 2002 version of MCLUST. 
2193
<br><dt><strong>mclust1998</strong>
-
 
2194
     <dd>Model-based cluster analysis: the 1998 version of MCLUST. 
-
 
2195
<br><dt><strong>mda</strong>
2193
<br><dt><strong>mda</strong>
2196
     <dd>Code for mixture discriminant analysis (MDA), flexible discriminant
2194
     <dd>Code for mixture discriminant analysis (MDA), flexible discriminant
2197
analysis (FDA), penalized discriminant analysis (PDA), multivariate
2195
analysis (FDA), penalized discriminant analysis (PDA), multivariate
2198
additive regression splines (MARS), adaptive back-fitting splines
2196
additive regression splines (MARS), adaptive back-fitting splines
2199
(BRUTO), and penalized regression. 
2197
(BRUTO), and penalized regression. 
2200
<br><dt><strong>meanscore</strong>
2198
<br><dt><strong>meanscore</strong>
2201
     <dd>Mean Score method for missing covariate data in logistic regression
2199
     <dd>Mean Score method for missing covariate data in logistic regression
2202
models. 
2200
models. 
2203
<br><dt><strong>merror</strong>
2201
<br><dt><strong>merror</strong>
2204
     <dd>Accuracy and precision of measurements. 
2202
     <dd>Accuracy and precision of measurements. 
2205
<br><dt><strong>mgcv</strong>
2203
<br><dt><strong>mgcv</strong>
2206
     <dd>Routines for GAMs and other genralized ridge regression problems with
2204
     <dd>Routines for GAMs and other genralized ridge regression problems with
2207
multiple smoothing parameter selection by GCV or UBRE. 
2205
multiple smoothing parameter selection by GCV or UBRE. 
2208
<em>Recommended</em>. 
2206
<em>Recommended</em>. 
2209
<br><dt><strong>mimR</strong>
2207
<br><dt><strong>mimR</strong>
2210
     <dd>An R interface to MIM for graphical modeling in R. 
2208
     <dd>An R interface to MIM for graphical modeling in R. 
2211
<br><dt><strong>mix</strong>
2209
<br><dt><strong>mix</strong>
2212
     <dd>Estimation/multiple imputation programs for mixed categorical and
2210
     <dd>Estimation/multiple imputation programs for mixed categorical and
2213
continuous data. 
2211
continuous data. 
2214
<br><dt><strong>mlbench</strong>
2212
<br><dt><strong>mlbench</strong>
2215
     <dd>A collection of artificial and real-world machine learning benchmark
2213
     <dd>A collection of artificial and real-world machine learning benchmark
2216
problems, including the Boston housing data. 
2214
problems, including the Boston housing data. 
2217
<br><dt><strong>mmlcr</strong>
2215
<br><dt><strong>mmlcr</strong>
2218
     <dd>Mixed-mode latent class regression (also known as mixed-mode mixture
2216
     <dd>Mixed-mode latent class regression (also known as mixed-mode mixture
2219
model regression or mixed-mode mixture regression models) which can
2217
model regression or mixed-mode mixture regression models) which can
2220
handle both longitudinal and one-time responses. 
2218
handle both longitudinal and one-time responses. 
2221
<br><dt><strong>moc</strong>
2219
<br><dt><strong>moc</strong>
2222
     <dd>Fits a variety of mixtures models for multivariate observations with
2220
     <dd>Fits a variety of mixtures models for multivariate observations with
2223
user-difined distributions and curves. 
2221
user-difined distributions and curves. 
2224
<br><dt><strong>mscalib</strong>
2222
<br><dt><strong>mscalib</strong>
2225
     <dd>Calibration and filtering of MALDI-TOF Peptide Mass Fingerprint data. 
2223
     <dd>Calibration and filtering of MALDI-TOF Peptide Mass Fingerprint data. 
2226
<br><dt><strong>msm</strong>
2224
<br><dt><strong>msm</strong>
2227
     <dd>Functions for fitting continuous-time Markov multi-state models to
2225
     <dd>Functions for fitting continuous-time Markov multi-state models to
2228
categorical processes observed at arbitrary times, optionally with
2226
categorical processes observed at arbitrary times, optionally with
2229
misclassified responses, and covariates on transition or
2227
misclassified responses, and covariates on transition or
2230
misclassification rates. 
2228
misclassification rates. 
2231
<br><dt><strong>muhaz</strong>
2229
<br><dt><strong>muhaz</strong>
2232
     <dd>Hazard function estimation in survival analysis. 
2230
     <dd>Hazard function estimation in survival analysis. 
2233
<br><dt><strong>multcomp</strong>
2231
<br><dt><strong>multcomp</strong>
2234
     <dd>Multiple comparison procedures for the one-way layout. 
2232
     <dd>Multiple comparison procedures for the one-way layout. 
2235
<br><dt><strong>multidim</strong>
2233
<br><dt><strong>multidim</strong>
2236
     <dd>Multidimensional descriptive statistics: factorial methods and
2234
     <dd>Multidimensional descriptive statistics: factorial methods and
2237
classification. 
2235
classification. 
-
 
2236
<br><dt><strong>multinomRob</strong>
-
 
2237
     <dd>Overdispersed multinomial regression using robust (LQD and tanh)
-
 
2238
estimation. 
2238
<br><dt><strong>multiv</strong>
2239
<br><dt><strong>multiv</strong>
2239
     <dd>Functions for hierarchical clustering, partitioning, bond energy
2240
     <dd>Functions for hierarchical clustering, partitioning, bond energy
2240
algorithm, Sammon mapping, PCA and correspondence analysis. 
2241
algorithm, Sammon mapping, PCA and correspondence analysis. 
2241
<br><dt><strong>mvbutils</strong>
2242
<br><dt><strong>mvbutils</strong>
2242
     <dd>Utilities by Mark V. Bravington for project organization, editing and
2243
     <dd>Utilities by Mark V. Bravington for project organization, editing and
2243
backup, sourcing, documentation (formal and informal), package
2244
backup, sourcing, documentation (formal and informal), package
2244
preparation, macro functions, and more. 
2245
preparation, macro functions, and more. 
2245
<br><dt><strong>mvnmle</strong>
2246
<br><dt><strong>mvnmle</strong>
2246
     <dd>ML estimation for multivariate normal data with missing values. 
2247
     <dd>ML estimation for multivariate normal data with missing values. 
2247
<br><dt><strong>mvnormtest</strong>
2248
<br><dt><strong>mvnormtest</strong>
2248
     <dd>Generalization of the Shapiro-Wilk test for multivariate variables. 
2249
     <dd>Generalization of the Shapiro-Wilk test for multivariate variables. 
2249
<br><dt><strong>mvpart</strong>
2250
<br><dt><strong>mvpart</strong>
2250
     <dd>Multivariate partitioning. 
2251
     <dd>Multivariate partitioning. 
2251
<br><dt><strong>mvtnorm</strong>
2252
<br><dt><strong>mvtnorm</strong>
2252
     <dd>Multivariate normal and t distributions. 
2253
     <dd>Multivariate normal and t distributions. 
2253
<br><dt><strong>ncdf</strong>
2254
<br><dt><strong>ncdf</strong>
2254
     <dd>Interface to Unidata netCDF data files. 
2255
     <dd>Interface to Unidata netCDF data files. 
2255
<br><dt><strong>ncomplete</strong>
2256
<br><dt><strong>ncomplete</strong>
2256
     <dd>Functions to perform the regression depth method (RDM) to binary
2257
     <dd>Functions to perform the regression depth method (RDM) to binary
2257
regression to approximate the minimum number of observations that can be
2258
regression to approximate the minimum number of observations that can be
2258
removed such that the reduced data set has complete separation. 
2259
removed such that the reduced data set has complete separation. 
2259
<br><dt><strong>negenes</strong>
2260
<br><dt><strong>negenes</strong>
2260
     <dd>Estimating the number of essential genes in a genome on the basis of
2261
     <dd>Estimating the number of essential genes in a genome on the basis of
2261
data from a random transposon mutagenesis experiment, through the use of
2262
data from a random transposon mutagenesis experiment, through the use of
2262
a Gibbs sampler. 
2263
a Gibbs sampler. 
2263
<br><dt><strong>netCDF</strong>
2264
<br><dt><strong>netCDF</strong>
2264
     <dd>Read data from netCDF files. 
2265
     <dd>Read data from netCDF files. 
2265
<br><dt><strong>nlme</strong>
2266
<br><dt><strong>nlme</strong>
2266
     <dd>Fit and compare Gaussian linear and nonlinear mixed-effects models. 
2267
     <dd>Fit and compare Gaussian linear and nonlinear mixed-effects models. 
2267
<em>Recommended</em>. 
2268
<em>Recommended</em>. 
2268
<br><dt><strong>nlmeODE</strong>
2269
<br><dt><strong>nlmeODE</strong>
2269
     <dd>Combine the <strong>nlme</strong> and <strong>odesolve</strong> packages for
2270
     <dd>Combine the <strong>nlme</strong> and <strong>odesolve</strong> packages for
2270
mixed-effects modelling using differential equations. 
2271
mixed-effects modelling using differential equations. 
2271
<br><dt><strong>nlrq</strong>
2272
<br><dt><strong>nlrq</strong>
2272
     <dd>Nonlinear quantile regression. 
2273
     <dd>Nonlinear quantile regression. 
2273
<br><dt><strong>nnet</strong>
2274
<br><dt><strong>nnet</strong>
2274
     <dd>Software for single hidden layer perceptrons ("feed-forward neural
2275
     <dd>Software for single hidden layer perceptrons ("feed-forward neural
2275
networks"), and for multinomial log-linear models.  Contained in the
2276
networks"), and for multinomial log-linear models.  Contained in the
2276
<code>VR</code> bundle.  <em>Recommended</em>. 
2277
<code>VR</code> bundle.  <em>Recommended</em>. 
2277
<br><dt><strong>nor1mix</strong>
2278
<br><dt><strong>nor1mix</strong>
2278
     <dd>One-dimensional normal mixture models classes, for, e.g., density
2279
     <dd>One-dimensional normal mixture models classes, for, e.g., density
2279
estimation or clustering algorithms research and teaching; providing the
2280
estimation or clustering algorithms research and teaching; providing the
2280
widely used Marron-Wand densities. 
2281
widely used Marron-Wand densities. 
2281
<br><dt><strong>norm</strong>
2282
<br><dt><strong>norm</strong>
2282
     <dd>Analysis of multivariate normal datasets with missing values. 
2283
     <dd>Analysis of multivariate normal datasets with missing values. 
2283
<br><dt><strong>normalp</strong>
2284
<br><dt><strong>normalp</strong>
2284
     <dd>A collection of utilities for normal of order p distributions
2285
     <dd>A collection of utilities for normal of order p distributions
2285
(General Error Distributions). 
2286
(General Error Distributions). 
2286
<br><dt><strong>nortest</strong>
2287
<br><dt><strong>nortest</strong>
2287
     <dd>Five omnibus tests for the composite hypothesis of normality. 
2288
     <dd>Five omnibus tests for the composite hypothesis of normality. 
2288
<br><dt><strong>noverlap</strong>
2289
<br><dt><strong>noverlap</strong>
2289
     <dd>Functions to perform the regression depth method (RDM) to binary
2290
     <dd>Functions to perform the regression depth method (RDM) to binary
2290
regression to approximate the amount of overlap, i.e., the minimal
2291
regression to approximate the amount of overlap, i.e., the minimal
2291
number of observations that need to be removed such that the reduced
2292
number of observations that need to be removed such that the reduced
2292
data set has no longer overlap. 
2293
data set has no longer overlap. 
2293
<br><dt><strong>npmc</strong>
2294
<br><dt><strong>npmc</strong>
2294
     <dd>Nonparametric Multiple Comparisons:  provides simultaneous rank test
2295
     <dd>Nonparametric Multiple Comparisons:  provides simultaneous rank test
2295
procedures for the one-way layout without presuming a certain
2296
procedures for the one-way layout without presuming a certain
2296
distribution. 
2297
distribution. 
2297
<br><dt><strong>nprq</strong>
2298
<br><dt><strong>nprq</strong>
2298
     <dd>Nonparametric and sparse quantile regression methods. 
2299
     <dd>Nonparametric and sparse quantile regression methods. 
2299
<br><dt><strong>odesolve</strong>
2300
<br><dt><strong>odesolve</strong>
2300
     <dd>An interface for the Ordinary Differential Equation (ODE) solver lsoda. 
2301
     <dd>An interface for the Ordinary Differential Equation (ODE) solver lsoda. 
2301
ODEs are expressed as R functions. 
2302
ODEs are expressed as R functions. 
2302
<br><dt><strong>orientlib</strong>
2303
<br><dt><strong>orientlib</strong>
2303
     <dd>Representations, conversions and display of orientation SO(3) data. 
2304
     <dd>Representations, conversions and display of orientation SO(3) data. 
2304
<br><dt><strong>oz</strong>
2305
<br><dt><strong>oz</strong>
2305
     <dd>Functions for plotting Australia's coastline and state boundaries. 
2306
     <dd>Functions for plotting Australia's coastline and state boundaries. 
2306
<br><dt><strong>pamr</strong>
2307
<br><dt><strong>pamr</strong>
2307
     <dd>Pam: Prediction Analysis for Microarrays. 
2308
     <dd>Pam: Prediction Analysis for Microarrays. 
2308
<br><dt><strong>pan</strong>
2309
<br><dt><strong>pan</strong>
2309
     <dd>Multiple imputation for multivariate panel or clustered data. 
2310
     <dd>Multiple imputation for multivariate panel or clustered data. 
2310
<br><dt><strong>panel</strong>
2311
<br><dt><strong>panel</strong>
2311
     <dd>Functions and datasets for fitting models to Panel data. 
2312
     <dd>Functions and datasets for fitting models to Panel data. 
2312
<br><dt><strong>pastecs</strong>
2313
<br><dt><strong>pastecs</strong>
2313
     <dd>Package for Analysis of Space-Time Ecological Series. 
2314
     <dd>Package for Analysis of Space-Time Ecological Series. 
2314
<br><dt><strong>pcurve</strong>
2315
<br><dt><strong>pcurve</strong>
2315
     <dd>Fits a principal curve to a numeric multivariate dataset in arbitrary
2316
     <dd>Fits a principal curve to a numeric multivariate dataset in arbitrary
2316
dimensions.  Produces diagnostic plots.  Also calculates Bray-Curtis and
2317
dimensions.  Produces diagnostic plots.  Also calculates Bray-Curtis and
2317
other distance matrices and performs multi-dimensional scaling and
2318
other distance matrices and performs multi-dimensional scaling and
2318
principal component analyses. 
2319
principal component analyses. 
2319
<br><dt><strong>pear</strong>
2320
<br><dt><strong>pear</strong>
2320
     <dd>Periodic Autoregression Analysis. 
2321
     <dd>Periodic Autoregression Analysis. 
2321
<br><dt><strong>permax</strong>
2322
<br><dt><strong>permax</strong>
2322
     <dd>Functions intended to facilitate certain basic analyses of DNA array
2323
     <dd>Functions intended to facilitate certain basic analyses of DNA array
2323
data, especially with regard to comparing expression levels between two
2324
data, especially with regard to comparing expression levels between two
2324
types of tissue. 
2325
types of tissue. 
2325
<br><dt><strong>pheno</strong>
2326
<br><dt><strong>pheno</strong>
2326
     <dd>Some easy-to-use functions for time series analyses of (plant-)
2327
     <dd>Some easy-to-use functions for time series analyses of (plant-)
2327
phenological data sets. 
2328
phenological data sets. 
2328
<br><dt><strong>phyloarray</strong>
2329
<br><dt><strong>phyloarray</strong>
2329
     <dd>Software to process data from phylogenetic or identification
2330
     <dd>Software to process data from phylogenetic or identification
2330
microarrays. 
2331
microarrays. 
2331
<br><dt><strong>pinktoe</strong>
2332
<br><dt><strong>pinktoe</strong>
2332
     <dd>Converts S trees to <small>HTML</small>/Perl files for interactive tree traversal. 
2333
     <dd>Converts S trees to <small>HTML</small>/Perl files for interactive tree traversal. 
2333
<br><dt><strong>pixmap</strong>
2334
<br><dt><strong>pixmap</strong>
2334
     <dd>Functions for import, export, plotting and other manipulations of
2335
     <dd>Functions for import, export, plotting and other manipulations of
2335
bitmapped images. 
2336
bitmapped images. 
2336
<br><dt><strong>pls.pcr</strong>
2337
<br><dt><strong>pls.pcr</strong>
2337
     <dd>Multivariate regression by PLS and PCR. 
2338
     <dd>Multivariate regression by PLS and PCR. 
2338
<br><dt><strong>polspline</strong>
2339
<br><dt><strong>polspline</strong>
2339
     <dd>Routines for the polynomial spline fitting routines hazard regression,
2340
     <dd>Routines for the polynomial spline fitting routines hazard regression,
2340
hazard estimation with flexible tails, logspline, lspec, polyclass, and
2341
hazard estimation with flexible tails, logspline, lspec, polyclass, and
2341
polymars, by C. Kooperberg and co-authors. 
2342
polymars, by C. Kooperberg and co-authors. 
2342
<br><dt><strong>polynom</strong>
2343
<br><dt><strong>polynom</strong>
2343
     <dd>A collection of functions to implement a class for univariate polynomial
2344
     <dd>A collection of functions to implement a class for univariate polynomial
2344
manipulations. 
2345
manipulations. 
2345
<br><dt><strong>pps</strong>
2346
<br><dt><strong>pps</strong>
2346
     <dd>Functions to select samples using PPS (probability proportional to size)
2347
     <dd>Functions to select samples using PPS (probability proportional to size)
2347
sampling, for stratified simple random sampling, and to compute joint
2348
sampling, for stratified simple random sampling, and to compute joint
2348
inclusion probabilities for Sampford's method of PPS sampling. 
2349
inclusion probabilities for Sampford's method of PPS sampling. 
2349
<br><dt><strong>prabclus</strong>
2350
<br><dt><strong>prabclus</strong>
2350
     <dd>Distance based parametric bootstrap tests for clustering, mainly thought
2351
     <dd>Distance based parametric bootstrap tests for clustering, mainly thought
2351
for presence-absence data (clustering of species distribution maps). 
2352
for presence-absence data (clustering of species distribution maps). 
2352
Jaccard and Kulczynski distance measures, clustering of MDS scores, and
2353
Jaccard and Kulczynski distance measures, clustering of MDS scores, and
2353
nearest neighbor based noise detection. 
2354
nearest neighbor based noise detection. 
2354
<br><dt><strong>princurve</strong>
2355
<br><dt><strong>princurve</strong>
2355
     <dd>Fits a principal curve to a matrix of points in arbitrary dimension. 
2356
     <dd>Fits a principal curve to a matrix of points in arbitrary dimension. 
2356
<br><dt><strong>pspline</strong>
2357
<br><dt><strong>pspline</strong>
2357
     <dd>Smoothing splines with penalties on order m derivatives. 
2358
     <dd>Smoothing splines with penalties on order m derivatives. 
2358
<br><dt><strong>psy</strong>
2359
<br><dt><strong>psy</strong>
2359
     <dd>Various procedures used in psychometry: Kappa, ICC, Cronbach alpha,
2360
     <dd>Various procedures used in psychometry: Kappa, ICC, Cronbach alpha,
2360
screeplot, PCA and related methods. 
2361
screeplot, PCA and related methods. 
2361
<br><dt><strong>qtl</strong>
2362
<br><dt><strong>qtl</strong>
2362
     <dd>Analysis of experimental crosses to identify QTLs. 
2363
     <dd>Analysis of experimental crosses to identify QTLs. 
2363
<br><dt><strong>quadprog</strong>
2364
<br><dt><strong>quadprog</strong>
2364
     <dd>For solving quadratic programming problems. 
2365
     <dd>For solving quadratic programming problems. 
2365
<br><dt><strong>quantreg</strong>
2366
<br><dt><strong>quantreg</strong>
2366
     <dd>Quantile regression and related methods. 
2367
     <dd>Quantile regression and related methods. 
2367
<br><dt><strong>qvcalc</strong>
2368
<br><dt><strong>qvcalc</strong>
2368
     <dd>Functions to compute quasi-variances and associated measures of
2369
     <dd>Functions to compute quasi-variances and associated measures of
2369
approximation error. 
2370
approximation error. 
2370
<br><dt><strong>randomForest</strong>
2371
<br><dt><strong>randomForest</strong>
2371
     <dd>Breiman's random forest classifier. 
2372
     <dd>Breiman's random forest classifier. 
-
 
2373
<br><dt><strong>ref</strong>
-
 
2374
     <dd>Functions for creating references, reading from and writing ro
-
 
2375
references and a memory efficient refdata type that transparently
-
 
2376
encapsulates matrices and data frames. 
2372
<br><dt><strong>relimp</strong>
2377
<br><dt><strong>relimp</strong>
2373
     <dd>Functions to facilitate inference on the relative importance of
2378
     <dd>Functions to facilitate inference on the relative importance of
2374
predictors in a linear or generalized linear model. 
2379
predictors in a linear or generalized linear model. 
2375
<br><dt><strong>rgdal</strong>
2380
<br><dt><strong>rgdal</strong>
2376
     <dd>Provides bindings to Frank Warmerdam's Geospatial Data Abstraction
2381
     <dd>Provides bindings to Frank Warmerdam's Geospatial Data Abstraction
2377
Library (GDAL). 
2382
Library (GDAL). 
2378
<br><dt><strong>rgenoud</strong>
2383
<br><dt><strong>rgenoud</strong>
2379
     <dd>R version of GENetic Optimization Using Derivatives. 
2384
     <dd>R version of GENetic Optimization Using Derivatives. 
2380
<br><dt><strong>rimage</strong>
2385
<br><dt><strong>rimage</strong>
2381
     <dd>Functions for image processing, including Sobel filter, rank filters,
2386
     <dd>Functions for image processing, including Sobel filter, rank filters,
2382
fft, histogram equalization, and reading <small>JPEG</small> files. 
2387
fft, histogram equalization, and reading <small>JPEG</small> files. 
2383
<br><dt><strong>rmeta</strong>
2388
<br><dt><strong>rmeta</strong>
2384
     <dd>Functions for simple fixed and random effects meta-analysis for
2389
     <dd>Functions for simple fixed and random effects meta-analysis for
2385
two-sample comparison of binary outcomes. 
2390
two-sample comparison of binary outcomes. 
2386
<br><dt><strong>rpart</strong>
2391
<br><dt><strong>rpart</strong>
2387
     <dd>Recursive PARTitioning and regression trees.  <em>Recommended</em>. 
2392
     <dd>Recursive PARTitioning and regression trees.  <em>Recommended</em>. 
2388
<br><dt><strong>rpvm</strong>
2393
<br><dt><strong>rpvm</strong>
2389
     <dd>R interface to PVM (Parallel Virtual Machine).  Provides interface to
2394
     <dd>R interface to PVM (Parallel Virtual Machine).  Provides interface to
2390
PVM APIs, and examples and documentation for its use. 
2395
PVM APIs, and examples and documentation for its use. 
2391
<br><dt><strong>rqmcmb2</strong>
2396
<br><dt><strong>rqmcmb2</strong>
2392
     <dd>Markov chain marginal bootstrap for quantile regression. 
2397
     <dd>Markov chain marginal bootstrap for quantile regression. 
2393
<br><dt><strong>rsprng</strong>
2398
<br><dt><strong>rsprng</strong>
2394
     <dd>Provides interface to SPRNG (Scalable Parallel Random Number Generators)
2399
     <dd>Provides interface to SPRNG (Scalable Parallel Random Number Generators)
2395
APIs, and examples and documentation for its use. 
2400
APIs, and examples and documentation for its use. 
2396
<br><dt><strong>sampfling</strong>
2401
<br><dt><strong>sampfling</strong>
2397
     <dd>Implements a modified version of the Sampford sampling algorithm.  Given
2402
     <dd>Implements a modified version of the Sampford sampling algorithm.  Given
2398
a quantity assigned to each unit in the population, samples are drawn
2403
a quantity assigned to each unit in the population, samples are drawn
2399
with probability proportional to te product of the quantities of the
2404
with probability proportional to te product of the quantities of the
2400
units included in the sample. 
2405
units included in the sample. 
2401
<br><dt><strong>sca</strong>
2406
<br><dt><strong>sca</strong>
2402
     <dd>Simple Component Analysis. 
2407
     <dd>Simple Component Analysis. 
2403
<br><dt><strong>scatterplot3d</strong>
2408
<br><dt><strong>scatterplot3d</strong>
2404
     <dd>Plots a three dimensional (3D) point cloud perspectively. 
2409
     <dd>Plots a three dimensional (3D) point cloud perspectively. 
2405
<br><dt><strong>seacarb</strong>
2410
<br><dt><strong>seacarb</strong>
2406
     <dd>Calculates parameters of the seawater carbonate system. 
2411
     <dd>Calculates parameters of the seawater carbonate system. 
2407
<br><dt><strong>seao</strong>
2412
<br><dt><strong>seao</strong>
2408
     <dd>Simple Evolutionary Algorithm Optimization. 
2413
     <dd>Simple Evolutionary Algorithm Optimization. 
2409
<br><dt><strong>seao.gui</strong>
2414
<br><dt><strong>seao.gui</strong>
2410
     <dd>Simple Evolutionary Algorithm Optimization: graphical user interface. 
2415
     <dd>Simple Evolutionary Algorithm Optimization: graphical user interface. 
2411
<br><dt><strong>segmented</strong>
2416
<br><dt><strong>segmented</strong>
2412
     <dd>Functions to estimate break-points of segmented relationships in
2417
     <dd>Functions to estimate break-points of segmented relationships in
2413
regression models (GLMs). 
2418
regression models (GLMs). 
2414
<br><dt><strong>sem</strong>
2419
<br><dt><strong>sem</strong>
2415
     <dd>Functions for fitting general linear Structural Equation Models (with
2420
     <dd>Functions for fitting general linear Structural Equation Models (with
2416
observed and unobserved variables) by the method of maximum likelihood
2421
observed and unobserved variables) by the method of maximum likelihood
2417
using the RAM approach. 
2422
using the RAM approach. 
2418
<br><dt><strong>serialize</strong>
2423
<br><dt><strong>serialize</strong>
2419
     <dd>Simple interfce for serializing to connections. 
2424
     <dd>Simple interfce for serializing to connections. 
2420
<br><dt><strong>session</strong>
2425
<br><dt><strong>session</strong>
2421
     <dd>Functions for interacting with, saving and restoring R sessions. 
2426
     <dd>Functions for interacting with, saving and restoring R sessions. 
2422
<br><dt><strong>sfsmisc</strong>
2427
<br><dt><strong>sfsmisc</strong>
2423
     <dd>Utilities from Seminar fuer Statistik ETH Zurich. 
2428
     <dd>Utilities from Seminar fuer Statistik ETH Zurich. 
2424
<br><dt><strong>sgeostat</strong>
2429
<br><dt><strong>sgeostat</strong>
2425
     <dd>An object-oriented framework for geostatistical modeling. 
2430
     <dd>An object-oriented framework for geostatistical modeling. 
2426
<br><dt><strong>shapefiles</strong>
2431
<br><dt><strong>shapefiles</strong>
2427
     <dd>Functions to read and write ESRI shapefiles. 
2432
     <dd>Functions to read and write ESRI shapefiles. 
2428
<br><dt><strong>shapes</strong>
2433
<br><dt><strong>shapes</strong>
2429
     <dd>Routines for the statistical analysis of shapes, including procrustes
2434
     <dd>Routines for the statistical analysis of shapes, including procrustes
2430
analysis, displaying shapes and principal components, testing for mean
2435
analysis, displaying shapes and principal components, testing for mean
2431
shape difference, thin-plate spline transformation grids and edge
2436
shape difference, thin-plate spline transformation grids and edge
2432
superimposition methods. 
2437
superimposition methods. 
2433
<br><dt><strong>simpleboot</strong>
2438
<br><dt><strong>simpleboot</strong>
2434
     <dd>Simple bootstrap routines. 
2439
     <dd>Simple bootstrap routines. 
2435
<br><dt><strong>sm</strong>
2440
<br><dt><strong>sm</strong>
2436
     <dd>Software linked to the book "Applied Smoothing Techniques for Data
2441
     <dd>Software linked to the book "Applied Smoothing Techniques for Data
2437
Analysis:  The Kernel Approach with <small>S-PLUS</small> Illustrations" by
2442
Analysis:  The Kernel Approach with <small>S-PLUS</small> Illustrations" by
2438
A. W. Bowman and A. Azzalini (1997), Oxford University Press. 
2443
A. W. Bowman and A. Azzalini (1997), Oxford University Press. 
2439
<br><dt><strong>sma</strong>
2444
<br><dt><strong>sma</strong>
2440
     <dd>Functions for exploratory (statistical) microarray analysis. 
2445
     <dd>Functions for exploratory (statistical) microarray analysis. 
2441
<br><dt><strong>smoothSurv</strong>
2446
<br><dt><strong>smoothSurv</strong>
2442
     <dd>Survival regression with smoothed error distribution. 
2447
     <dd>Survival regression with smoothed error distribution. 
2443
<br><dt><strong>sn</strong>
2448
<br><dt><strong>sn</strong>
2444
     <dd>Functions for manipulating skew-normal probability distributions and for
2449
     <dd>Functions for manipulating skew-normal probability distributions and for
2445
fitting them to data, in the scalar and the multivariate case. 
2450
fitting them to data, in the scalar and the multivariate case. 
2446
<br><dt><strong>sna</strong>
2451
<br><dt><strong>sna</strong>
2447
     <dd>A range of tools for social network analysis, including node and
2452
     <dd>A range of tools for social network analysis, including node and
2448
graph-level indices, structural distance and covariance methods,
2453
graph-level indices, structural distance and covariance methods,
2449
structural equivalence detection, p* modeling, and network
2454
structural equivalence detection, p* modeling, and network
2450
visualization. 
2455
visualization. 
2451
<br><dt><strong>snow</strong>
2456
<br><dt><strong>snow</strong>
2452
     <dd>Simple Network of Workstations: support for simple parallel computing in
2457
     <dd>Simple Network of Workstations: support for simple parallel computing in
2453
R. 
2458
R. 
2454
<br><dt><strong>som</strong>
2459
<br><dt><strong>som</strong>
2455
     <dd>Self-Organizing Maps (with application in gene clustering). 
2460
     <dd>Self-Organizing Maps (with application in gene clustering). 
2456
<br><dt><strong>sound</strong>
2461
<br><dt><strong>sound</strong>
2457
     <dd>A sound interface for R: Basic functions for dealing with <code>.wav</code>
2462
     <dd>A sound interface for R: Basic functions for dealing with <code>.wav</code>
2458
files and sound samples. 
2463
files and sound samples. 
2459
<br><dt><strong>spatial</strong>
2464
<br><dt><strong>spatial</strong>
2460
     <dd>Functions for kriging and point pattern analysis from "Modern Applied
2465
     <dd>Functions for kriging and point pattern analysis from "Modern Applied
2461
Statistics with S" by W. Venables and B. Ripley.  Contained in the
2466
Statistics with S" by W. Venables and B. Ripley.  Contained in the
2462
<code>VR</code> bundle.  <em>Recommended</em>. 
2467
<code>VR</code> bundle.  <em>Recommended</em>. 
2463
<br><dt><strong>spatstat</strong>
2468
<br><dt><strong>spatstat</strong>
2464
     <dd>Data analysis and modelling of two-dimensional point patterns, including
2469
     <dd>Data analysis and modelling of two-dimensional point patterns, including
2465
multitype points and spatial covariates. 
2470
multitype points and spatial covariates. 
2466
<br><dt><strong>spdep</strong>
2471
<br><dt><strong>spdep</strong>
2467
     <dd>A collection of functions to create spatial weights matrix objects from
2472
     <dd>A collection of functions to create spatial weights matrix objects from
2468
polygon contiguities, from point patterns by distance and tesselations,
2473
polygon contiguities, from point patterns by distance and tesselations,
2469
for summarising these objects, and for permitting their use in spatial
2474
for summarising these objects, and for permitting their use in spatial
2470
data analysis; a collection of tests for spatial autocorrelation,
2475
data analysis; a collection of tests for spatial autocorrelation,
2471
including global Moran's I and Geary's C, local Moran's I, saddlepoint
2476
including global Moran's I and Geary's C, local Moran's I, saddlepoint
2472
approximations for global and local Moran's I; and functions for
2477
approximations for global and local Moran's I; and functions for
2473
estimating spatial simultaneous autoregressive (SAR) models.  (Was
2478
estimating spatial simultaneous autoregressive (SAR) models.  (Was
2474
formerly the three packages: <strong>spweights</strong>, <strong>sptests</strong>, and
2479
formerly the three packages: <strong>spweights</strong>, <strong>sptests</strong>, and
2475
<strong>spsarlm</strong>.) 
2480
<strong>spsarlm</strong>.) 
2476
<br><dt><strong>splancs</strong>
2481
<br><dt><strong>splancs</strong>
2477
     <dd>Spatial and space-time point pattern analysis functions. 
2482
     <dd>Spatial and space-time point pattern analysis functions. 
2478
<br><dt><strong>statmod</strong>
2483
<br><dt><strong>statmod</strong>
2479
     <dd>Miscellaneous biostatistical modelling functions. 
2484
     <dd>Miscellaneous biostatistical modelling functions. 
2480
<br><dt><strong>strucchange</strong>
2485
<br><dt><strong>strucchange</strong>
2481
     <dd>Various tests on structural change in linear regression models. 
2486
     <dd>Various tests on structural change in linear regression models. 
2482
<br><dt><strong>subselect</strong>
2487
<br><dt><strong>subselect</strong>
2483
     <dd>A collection of functions which assess the quality of variable subsets
2488
     <dd>A collection of functions which assess the quality of variable subsets
2484
as surrogates for a full data set, and search for subsets which are
2489
as surrogates for a full data set, and search for subsets which are
2485
optimal under various criteria. 
2490
optimal under various criteria. 
2486
<br><dt><strong>supclust</strong>
2491
<br><dt><strong>supclust</strong>
2487
     <dd>Methodology for supervised grouping of predictor variables. 
2492
     <dd>Methodology for supervised grouping of predictor variables. 
2488
<br><dt><strong>survey</strong>
2493
<br><dt><strong>survey</strong>
2489
     <dd>Summary statistics, generalized linear models, and general maximum
2494
     <dd>Summary statistics, generalized linear models, and general maximum
2490
likelihood estimation for stratified, cluster-sampled, unequally
2495
likelihood estimation for stratified, cluster-sampled, unequally
2491
weighted survey samples. 
2496
weighted survey samples. 
2492
<br><dt><strong>survival</strong>
2497
<br><dt><strong>survival</strong>
2493
     <dd>Functions for survival analysis, including penalised likelihood. 
2498
     <dd>Functions for survival analysis, including penalised likelihood. 
2494
<em>Recommended</em>. 
2499
<em>Recommended</em>. 
2495
<br><dt><strong>survrec</strong>
2500
<br><dt><strong>survrec</strong>
2496
     <dd>Survival analysis for recurrent event data. 
2501
     <dd>Survival analysis for recurrent event data. 
2497
<br><dt><strong>systemfit</strong>
2502
<br><dt><strong>systemfit</strong>
2498
     <dd>Contains functions for fitting simultaneous systems of equations using
2503
     <dd>Contains functions for fitting simultaneous systems of equations using
2499
Ordinary Least Sqaures (OLS), Two-Stage Least Squares (2SLS), and
2504
Ordinary Least Sqaures (OLS), Two-Stage Least Squares (2SLS), and
2500
Three-Stage Least Squares (3SLS). 
2505
Three-Stage Least Squares (3SLS). 
2501
<br><dt><strong>tapiR</strong>
2506
<br><dt><strong>tapiR</strong>
2502
     <dd>Tools for accessing (UK) parliamentary information in R. 
2507
     <dd>Tools for accessing (UK) parliamentary information in R. 
2503
<br><dt><strong>tensor</strong>
2508
<br><dt><strong>tensor</strong>
2504
     <dd>Tensor product of arrays. 
2509
     <dd>Tensor product of arrays. 
2505
<br><dt><strong>tkrplot</strong>
2510
<br><dt><strong>tkrplot</strong>
2506
     <dd>Simple mechanism for placing R graphics in a Tk widget. 
2511
     <dd>Simple mechanism for placing R graphics in a Tk widget. 
2507
<br><dt><strong>tree</strong>
2512
<br><dt><strong>tree</strong>
2508
     <dd>Classification and regression trees. 
2513
     <dd>Classification and regression trees. 
2509
<br><dt><strong>tripack</strong>
2514
<br><dt><strong>tripack</strong>
2510
     <dd>A constrained two-dimensional Delaunay triangulation package. 
2515
     <dd>A constrained two-dimensional Delaunay triangulation package. 
2511
<br><dt><strong>tseries</strong>
2516
<br><dt><strong>tseries</strong>
2512
     <dd>Package for time series analysis with emphasis on non-linear modelling. 
2517
     <dd>Package for time series analysis with emphasis on non-linear modelling. 
2513
<br><dt><strong>twostage</strong>
2518
<br><dt><strong>twostage</strong>
2514
     <dd>Functions for optimal design of two-stage-studies using the Mean Score
2519
     <dd>Functions for optimal design of two-stage-studies using the Mean Score
2515
method. 
2520
method. 
2516
<br><dt><strong>udunits</strong>
2521
<br><dt><strong>udunits</strong>
2517
     <dd>Interface to Unidata's routines to convert units. 
2522
     <dd>Interface to Unidata's routines to convert units. 
2518
<br><dt><strong>vardiag</strong>
2523
<br><dt><strong>vardiag</strong>
2519
     <dd>Interactive variogram diagnostics. 
2524
     <dd>Interactive variogram diagnostics. 
2520
<br><dt><strong>vcd</strong>
2525
<br><dt><strong>vcd</strong>
2521
     <dd>Functions and data sets based on the book "Visualizing Categorical
2526
     <dd>Functions and data sets based on the book "Visualizing Categorical
2522
Data" by Michael Friendly. 
2527
Data" by Michael Friendly. 
2523
<br><dt><strong>vegan</strong>
2528
<br><dt><strong>vegan</strong>
2524
     <dd>Various help functions for vegetation scientists and community
2529
     <dd>Various help functions for vegetation scientists and community
2525
ecologists. 
2530
ecologists. 
2526
<br><dt><strong>waveslim</strong>
2531
<br><dt><strong>waveslim</strong>
2527
     <dd>Basic wavelet routines for time series analysis. 
2532
     <dd>Basic wavelet routines for time series analysis. 
2528
<br><dt><strong>wavethresh</strong>
2533
<br><dt><strong>wavethresh</strong>
2529
     <dd>Software to perform 1-d and 2-d wavelet statistics and transforms. 
2534
     <dd>Software to perform 1-d and 2-d wavelet statistics and transforms. 
2530
<br><dt><strong>wle</strong>
2535
<br><dt><strong>wle</strong>
2531
     <dd>Robust statistical inference via a weighted likelihood approach. 
2536
     <dd>Robust statistical inference via a weighted likelihood approach. 
2532
<br><dt><strong>xgobi</strong>
2537
<br><dt><strong>xgobi</strong>
2533
     <dd>Interface to the XGobi and XGvis programs for graphical data analysis. 
2538
     <dd>Interface to the XGobi and XGvis programs for graphical data analysis. 
2534
<br><dt><strong>xtable</strong>
2539
<br><dt><strong>xtable</strong>
2535
     <dd>Export data to LaTeX and <small>HTML</small> tables. 
2540
     <dd>Export data to LaTeX and <small>HTML</small> tables. 
2536
</dl>
2541
</dl>
2537
 
2542
 
2538
<p>See <small>CRAN</small> <code>src/contrib/PACKAGES</code> for more information.
2543
<p>See <small>CRAN</small> <code>src/contrib/PACKAGES</code> for more information.
2539
 
2544
 
2540
   <p>There is also a <small>CRAN</small> <code>src/contrib/Devel</code> directory which
2545
   <p>There is also a <small>CRAN</small> <code>src/contrib/Devel</code> directory which
2541
contains packages still "under development" or depending on features
2546
contains packages still "under development" or depending on features
2542
only present in the current development versions of R.  Volunteers are
2547
only present in the current development versions of R.  Volunteers are
2543
invited to give these a try, of course.  This area of <small>CRAN</small> currently
2548
invited to give these a try, of course.  This area of <small>CRAN</small> currently
2544
contains
2549
contains
2545
 
2550
 
2546
     <dl>
2551
     <dl>
2547
<dt><strong>Dopt</strong>
2552
<dt><strong>Dopt</strong>
2548
     <dd>Finding D-optimal experimental designs.
2553
     <dd>Finding D-optimal experimental designs.
2549
 
2554
 
2550
     <br><dt><strong>GLMMGibbs</strong>
2555
     <br><dt><strong>GLMMGibbs</strong>
2551
     <dd>Generalised Linear Mixed Models by Gibbs sampling.
2556
     <dd>Generalised Linear Mixed Models by Gibbs sampling.
2552
 
2557
 
2553
     <br><dt><strong>RPgSQL</strong>
2558
     <br><dt><strong>RPgSQL</strong>
2554
     <dd>Provides methods for accessing data stored in PostgreSQL tables.
2559
     <dd>Provides methods for accessing data stored in PostgreSQL tables.
2555
 
2560
 
2556
     <br><dt><strong>Rmpi</strong>
2561
     <br><dt><strong>Rmpi</strong>
2557
     <dd>An interface (wrapper) to MPI (Message-Passing Interface) APIs.  It also
2562
     <dd>An interface (wrapper) to MPI (Message-Passing Interface) APIs.  It also
2558
provides interactive R slave functionalities to make MPI programming
2563
provides interactive R slave functionalities to make MPI programming
2559
easier in R than in C(++) or FORTRAN.
2564
easier in R than in C(++) or FORTRAN.
2560
 
2565
 
2561
     <br><dt><strong>dseplus</strong>
2566
     <br><dt><strong>dseplus</strong>
2562
     <dd>Extensions to <strong>dse</strong>, the Dynamic Systems Estimation multivariate
2567
     <dd>Extensions to <strong>dse</strong>, the Dynamic Systems Estimation multivariate
2563
time series package.  Contains PADI, juice and monitoring extensions.
2568
time series package.  Contains PADI, juice and monitoring extensions.
2564
 
2569
 
2565
     <br><dt><strong>ensemble</strong>
2570
     <br><dt><strong>ensemble</strong>
2566
     <dd>Ensembles of tree classifiers.
2571
     <dd>Ensembles of tree classifiers.
2567
 
2572
 
2568
     <br><dt><strong>runStat</strong>
2573
     <br><dt><strong>runStat</strong>
2569
     <dd>Running median and mean.
2574
     <dd>Running median and mean.
2570
 
2575
 
2571
     <br><dt><strong>write.snns</strong>
2576
     <br><dt><strong>write.snns</strong>
2572
     <dd>Function for writing a <small>SNNS</small> pattern file from a data frame or
2577
     <dd>Function for writing a <small>SNNS</small> pattern file from a data frame or
2573
matrix. 
2578
matrix. 
2574
</dl>
2579
</dl>
2575
 
2580
 
2576
<div class="node">
2581
<div class="node">
2577
<p><hr>
2582
<p><hr>
2578
Node:&nbsp;<a name="Add-on%20packages%20from%20Omegahat">Add-on packages from Omegahat</a>,
2583
Node:&nbsp;<a name="Add-on%20packages%20from%20Omegahat">Add-on packages from Omegahat</a>,
2579
Next:&nbsp;<a rel="next" accesskey="n" href="#Add-on%20packages%20from%20BioConductor">Add-on packages from BioConductor</a>,
2584
Next:&nbsp;<a rel="next" accesskey="n" href="#Add-on%20packages%20from%20BioConductor">Add-on packages from BioConductor</a>,
2580
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Add-on%20packages%20from%20CRAN">Add-on packages from CRAN</a>,
2585
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Add-on%20packages%20from%20CRAN">Add-on packages from CRAN</a>,
2581
Up:&nbsp;<a rel="up" accesskey="u" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>
2586
Up:&nbsp;<a rel="up" accesskey="u" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>
2582
<br>
2587
<br>
2583
</div>
2588
</div>
2584
 
2589
 
2585
<h3 class="subsection">5.1.3 Add-on packages from Omegahat</h4>
2590
<h3 class="subsection">5.1.3 Add-on packages from Omegahat</h4>
2586
 
2591
 
2587
<p>The <code>src/contrib/Omegahat</code> Directory of a <small>CRAN</small> site contains yet
2592
<p>The <code>src/contrib/Omegahat</code> Directory of a <small>CRAN</small> site contains yet
2588
unreleased packages from the <a href="http://www.omegahat.org/">Omegahat Project for Statistical Computing</a>.  Currently, there are
2593
unreleased packages from the <a href="http://www.omegahat.org/">Omegahat Project for Statistical Computing</a>.  Currently, there are
2589
 
2594
 
2590
     <dl>
2595
     <dl>
2591
<dt><strong>CORBA</strong>
2596
<dt><strong>CORBA</strong>
2592
     <dd>Dynamic CORBA client/server facilities for R.  Connects to other
2597
     <dd>Dynamic CORBA client/server facilities for R.  Connects to other
2593
CORBA-aware applications developed in arbitrary languages, on different
2598
CORBA-aware applications developed in arbitrary languages, on different
2594
machines and allows R functionality to be exported in the same way to
2599
machines and allows R functionality to be exported in the same way to
2595
other applications. 
2600
other applications. 
2596
<br><dt><strong>OOP</strong>
2601
<br><dt><strong>OOP</strong>
2597
     <dd>OOP style classes and methods for R and <small>S-PLUS</small>.  Object references and
2602
     <dd>OOP style classes and methods for R and <small>S-PLUS</small>.  Object references and
2598
class-based method definition are supported in the style of languages
2603
class-based method definition are supported in the style of languages
2599
such as Java and C++. 
2604
such as Java and C++. 
2600
<br><dt><strong>REmbeddedPostgres</strong>
2605
<br><dt><strong>REmbeddedPostgres</strong>
2601
     <dd>Allows R functions and objects to be used to implement SQL functions --
2606
     <dd>Allows R functions and objects to be used to implement SQL functions --
2602
per-record, aggregate and trigger functions. 
2607
per-record, aggregate and trigger functions. 
2603
<br><dt><strong>REventLoop</strong>
2608
<br><dt><strong>REventLoop</strong>
2604
     <dd>An abstract event loop mechanism that is toolkit independent and can be
2609
     <dd>An abstract event loop mechanism that is toolkit independent and can be
2605
used to to replace the R event loop. 
2610
used to to replace the R event loop. 
2606
<br><dt><strong>RGdkPixbuf</strong>
2611
<br><dt><strong>RGdkPixbuf</strong>
2607
     <dd>S language functions to access the facilities in the GdkPixbuf library
2612
     <dd>S language functions to access the facilities in the GdkPixbuf library
2608
for manipulating images. 
2613
for manipulating images. 
2609
<br><dt><strong>RGnumeric</strong>
2614
<br><dt><strong>RGnumeric</strong>
2610
     <dd>A plugin for the Gnumeric spreadsheet that allows R functions to be
2615
     <dd>A plugin for the Gnumeric spreadsheet that allows R functions to be
2611
called from cells within the sheet, automatic recalculation, etc. 
2616
called from cells within the sheet, automatic recalculation, etc. 
2612
<br><dt><strong>RGtk</strong>
2617
<br><dt><strong>RGtk</strong>
2613
     <dd>Facilities in the S language for programming graphical interfaces using
2618
     <dd>Facilities in the S language for programming graphical interfaces using
2614
Gtk, the Gnome GUI toolkit. 
2619
Gtk, the Gnome GUI toolkit. 
2615
<br><dt><strong>RGtkBindingGenerator</strong>
2620
<br><dt><strong>RGtkBindingGenerator</strong>
2616
     <dd>A meta-package which generates C and R code to provide bindings to a
2621
     <dd>A meta-package which generates C and R code to provide bindings to a
2617
Gtk-based library. 
2622
Gtk-based library. 
2618
<br><dt><strong>RGtkExtra</strong>
2623
<br><dt><strong>RGtkExtra</strong>
2619
     <dd>A collection of S functions that provide an interface to the widgets in
2624
     <dd>A collection of S functions that provide an interface to the widgets in
2620
the gtk+extra library such as the GtkSheet data-grid display, icon list,
2625
the gtk+extra library such as the GtkSheet data-grid display, icon list,
2621
file list and directory tree. 
2626
file list and directory tree. 
2622
<br><dt><strong>RGtkGlade</strong>
2627
<br><dt><strong>RGtkGlade</strong>
2623
     <dd>S language bindings providing an interface to Glade, the interactive
2628
     <dd>S language bindings providing an interface to Glade, the interactive
2624
Gnome GUI creator. 
2629
Gnome GUI creator. 
2625
<br><dt><strong>RGtkHTML</strong>
2630
<br><dt><strong>RGtkHTML</strong>
2626
     <dd>A collection of S functions that provide an interface to creating and
2631
     <dd>A collection of S functions that provide an interface to creating and
2627
controlling an <small>HTML</small> widget which can be used to display <small>HTML</small>
2632
controlling an <small>HTML</small> widget which can be used to display <small>HTML</small>
2628
documents from files or content generated dynamically in S. 
2633
documents from files or content generated dynamically in S. 
2629
<br><dt><strong>RGtkViewers</strong>
2634
<br><dt><strong>RGtkViewers</strong>
2630
     <dd>A collection of tools for viewing different S objects, databases, class
2635
     <dd>A collection of tools for viewing different S objects, databases, class
2631
and widget hierarchies, S source file contents, etc. 
2636
and widget hierarchies, S source file contents, etc. 
2632
<br><dt><strong>RJavaDevice</strong>
2637
<br><dt><strong>RJavaDevice</strong>
2633
     <dd>A graphics device for R that uses Java components and graphics. 
2638
     <dd>A graphics device for R that uses Java components and graphics. 
2634
<small>API</small>s. 
2639
<small>API</small>s. 
2635
<br><dt><strong>RObjectTables</strong>
2640
<br><dt><strong>RObjectTables</strong>
2636
     <dd>The C and S code allows one to define R objects to be used as elements
2641
     <dd>The C and S code allows one to define R objects to be used as elements
2637
of the search path with their own semantics and facilities for reading
2642
of the search path with their own semantics and facilities for reading
2638
and writing variables.  The objects implement a simple interface via R
2643
and writing variables.  The objects implement a simple interface via R
2639
functions (either methods or closures) and can access external data,
2644
functions (either methods or closures) and can access external data,
2640
e.g., in other applications, languages, formats, <small class="dots">...</small>
2645
e.g., in other applications, languages, formats, <small class="dots">...</small>
2641
<br><dt><strong>RSMethods</strong>
2646
<br><dt><strong>RSMethods</strong>
2642
     <dd>An implementation of S version 4 methods and classes for R, consistent
2647
     <dd>An implementation of S version 4 methods and classes for R, consistent
2643
with the basic material in "Programming with Data" by John
2648
with the basic material in "Programming with Data" by John
2644
M. Chambers, 1998, Springer NY. 
2649
M. Chambers, 1998, Springer NY. 
2645
<br><dt><strong>RSPerl</strong>
2650
<br><dt><strong>RSPerl</strong>
2646
     <dd>An interface from R to an embedded, persistent Perl interpreter,
2651
     <dd>An interface from R to an embedded, persistent Perl interpreter,
2647
allowing one to call arbitrary Perl subroutines, classes and methods. 
2652
allowing one to call arbitrary Perl subroutines, classes and methods. 
2648
<br><dt><strong>RSPython</strong>
2653
<br><dt><strong>RSPython</strong>
2649
     <dd>Allows Python programs to invoke S functions, methods, etc., and S code
2654
     <dd>Allows Python programs to invoke S functions, methods, etc., and S code
2650
to call Python functionality. 
2655
to call Python functionality. 
2651
<br><dt><strong>RXLisp</strong>
2656
<br><dt><strong>RXLisp</strong>
2652
     <dd>An interface to call XLisp-Stat functions from within R. 
2657
     <dd>An interface to call XLisp-Stat functions from within R. 
2653
<br><dt><strong>SASXML</strong>
2658
<br><dt><strong>SASXML</strong>
2654
     <dd>Example for reading <small>XML</small> files in SAS 8.2 manner. 
2659
     <dd>Example for reading <small>XML</small> files in SAS 8.2 manner. 
2655
<br><dt><strong>SJava</strong>
2660
<br><dt><strong>SJava</strong>
2656
     <dd>An interface from R to Java to create and call Java objects and
2661
     <dd>An interface from R to Java to create and call Java objects and
2657
methods. 
2662
methods. 
2658
<br><dt><strong>SLanguage</strong>
2663
<br><dt><strong>SLanguage</strong>
2659
     <dd>Functions and C support utilities to support S language programming
2664
     <dd>Functions and C support utilities to support S language programming
2660
that can work in both R and <small>S-PLUS</small>. 
2665
that can work in both R and <small>S-PLUS</small>. 
2661
<br><dt><strong>SNetscape</strong>
2666
<br><dt><strong>SNetscape</strong>
2662
     <dd>Plugin for Netscape and JavaScript. 
2667
     <dd>Plugin for Netscape and JavaScript. 
2663
<br><dt><strong>SWinRegistry</strong>
2668
<br><dt><strong>SWinRegistry</strong>
2664
     <dd>Provides access from within R to read and write the Windows registry. 
2669
     <dd>Provides access from within R to read and write the Windows registry. 
2665
<br><dt><strong>SWinTypeLibs</strong>
2670
<br><dt><strong>SWinTypeLibs</strong>
2666
     <dd>Provides ways to extract type information from type libraries and/or
2671
     <dd>Provides ways to extract type information from type libraries and/or
2667
DCOM objects that describes the methods, properties, etc. of an
2672
DCOM objects that describes the methods, properties, etc. of an
2668
interface. 
2673
interface. 
2669
<br><dt><strong>SXalan</strong>
2674
<br><dt><strong>SXalan</strong>
2670
     <dd>Process <small>XML</small> documents using <small>XSL</small> functions implemented in R and
2675
     <dd>Process <small>XML</small> documents using <small>XSL</small> functions implemented in R and
2671
dynamically substituting output from R. 
2676
dynamically substituting output from R. 
2672
<br><dt><strong>Slcc</strong>
2677
<br><dt><strong>Slcc</strong>
2673
     <dd>Parses C source code, allowing one to analyze and automatically generate
2678
     <dd>Parses C source code, allowing one to analyze and automatically generate
2674
interfaces from S to that code, including the table of S-accessible
2679
interfaces from S to that code, including the table of S-accessible
2675
native symbols, parameter count and type information, S constructors
2680
native symbols, parameter count and type information, S constructors
2676
from C objects, call graphs, etc. 
2681
from C objects, call graphs, etc. 
2677
<br><dt><strong>Sxslt</strong>
2682
<br><dt><strong>Sxslt</strong>
2678
     <dd>An extension module for libxslt, the <small>XML</small>-<small>XSL</small> document translator,
2683
     <dd>An extension module for libxslt, the <small>XML</small>-<small>XSL</small> document translator,
2679
that allows <small>XSL</small> functions to be implemented via R functions. 
2684
that allows <small>XSL</small> functions to be implemented via R functions. 
2680
</dl>
2685
</dl>
2681
 
2686
 
2682
<div class="node">
2687
<div class="node">
2683
<p><hr>
2688
<p><hr>
2684
Node:&nbsp;<a name="Add-on%20packages%20from%20BioConductor">Add-on packages from BioConductor</a>,
2689
Node:&nbsp;<a name="Add-on%20packages%20from%20BioConductor">Add-on packages from BioConductor</a>,
2685
Next:&nbsp;<a rel="next" accesskey="n" href="#Other%20add-on%20packages">Other add-on packages</a>,
2690
Next:&nbsp;<a rel="next" accesskey="n" href="#Other%20add-on%20packages">Other add-on packages</a>,
2686
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Add-on%20packages%20from%20Omegahat">Add-on packages from Omegahat</a>,
2691
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Add-on%20packages%20from%20Omegahat">Add-on packages from Omegahat</a>,
2687
Up:&nbsp;<a rel="up" accesskey="u" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>
2692
Up:&nbsp;<a rel="up" accesskey="u" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>
2688
<br>
2693
<br>
2689
</div>
2694
</div>
2690
 
2695
 
2691
<h3 class="subsection">5.1.4 Add-on packages from BioConductor</h4>
2696
<h3 class="subsection">5.1.4 Add-on packages from BioConductor</h4>
2692
 
2697
 
2693
<p>The <a href="http://www.bioconductor.org">Bioconductor Project</a> produces an
2698
<p>The <a href="http://www.bioconductor.org">Bioconductor Project</a> produces an
2694
open source software framework that will assist biologists and
2699
open source software framework that will assist biologists and
2695
statisticians working in bioinformatics, with primary emphasis on
2700
statisticians working in bioinformatics, with primary emphasis on
2696
inference using DNA microarrays.  The following R packages are contained
2701
inference using DNA microarrays.  The following R packages are contained
2697
in the current release of BioConductor, with more packages under
2702
in the current release of BioConductor, with more packages under
2698
development.
2703
development.
2699
 
2704
 
2700
     <dl>
2705
     <dl>
2701
<dt><strong>AnnBuilder</strong>
2706
<dt><strong>AnnBuilder</strong>
2702
     <dd>Assemble and process genomic annotation data, from databases such as
2707
     <dd>Assemble and process genomic annotation data, from databases such as
2703
GenBank, the Gene Ontology Consortium, LocusLink, UniGene, the UCSC
2708
GenBank, the Gene Ontology Consortium, LocusLink, UniGene, the UCSC
2704
Human Genome Project. 
2709
Human Genome Project. 
2705
<br><dt><strong>Biobase</strong>
2710
<br><dt><strong>Biobase</strong>
2706
     <dd>Object-oriented representation and manipulation of genomic data (S4
2711
     <dd>Object-oriented representation and manipulation of genomic data (S4
2707
class structure). 
2712
class structure). 
2708
<br><dt><strong>DynDoc</strong>
2713
<br><dt><strong>DynDoc</strong>
2709
     <dd>Functionality to create and interact with dynamic documents, vignettes,
2714
     <dd>Functionality to create and interact with dynamic documents, vignettes,
2710
and other navigable documents. 
2715
and other navigable documents. 
2711
<br><dt><strong>MAGEML</strong>
2716
<br><dt><strong>MAGEML</strong>
2712
     <dd>Functionality to handle MAGEML documents. 
2717
     <dd>Functionality to handle MAGEML documents. 
2713
<br><dt><strong>RBGL</strong>
2718
<br><dt><strong>RBGL</strong>
2714
     <dd>An interface between the graph package and the Boost graph libraries,
2719
     <dd>An interface between the graph package and the Boost graph libraries,
2715
allowing for fast manipulation of graph objects in R. 
2720
allowing for fast manipulation of graph objects in R. 
2716
<br><dt><strong>ROC</strong>
2721
<br><dt><strong>ROC</strong>
2717
     <dd>Receiver Operating Characteristic (ROC) approach for identifying genes
2722
     <dd>Receiver Operating Characteristic (ROC) approach for identifying genes
2718
that are differentially expressed in two types of samples. 
2723
that are differentially expressed in two types of samples. 
2719
<br><dt><strong>RdbiPgSQL</strong>
2724
<br><dt><strong>RdbiPgSQL</strong>
2720
     <dd>Methods for accessing data stored in PostgreSQL tables. 
2725
     <dd>Methods for accessing data stored in PostgreSQL tables. 
2721
<br><dt><strong>Rgraphviz</strong>
2726
<br><dt><strong>Rgraphviz</strong>
2722
     <dd>An interface with Graphviz for plotting graph objects in R. 
2727
     <dd>An interface with Graphviz for plotting graph objects in R. 
2723
<br><dt><strong>Ruuid</strong>
2728
<br><dt><strong>Ruuid</strong>
2724
     <dd>Creates Universally Unique ID values (UUIDs) in R. 
2729
     <dd>Creates Universally Unique ID values (UUIDs) in R. 
2725
<br><dt><strong>SAGElyzer</strong>
2730
<br><dt><strong>SAGElyzer</strong>
2726
     <dd>Locates genes based on SAGE tags. 
2731
     <dd>Locates genes based on SAGE tags. 
2727
<br><dt><strong>SNPtools</strong>
2732
<br><dt><strong>SNPtools</strong>
2728
     <dd>Rudimentary structures for SNP data. 
2733
     <dd>Rudimentary structures for SNP data. 
2729
<br><dt><strong>affy</strong>
2734
<br><dt><strong>affy</strong>
2730
     <dd>Methods for Affymetrix Oligonucleotide Arrays. 
2735
     <dd>Methods for Affymetrix Oligonucleotide Arrays. 
2731
<br><dt><strong>affyPLM</strong>
2736
<br><dt><strong>affyPLM</strong>
2732
     <dd>For fitting Probe Level Models. 
2737
     <dd>For fitting Probe Level Models. 
2733
<br><dt><strong>affycomp</strong>
2738
<br><dt><strong>affycomp</strong>
2734
     <dd>Graphics toolbox for assessment of Affymetrix expression measures. 
2739
     <dd>Graphics toolbox for assessment of Affymetrix expression measures. 
2735
<br><dt><strong>affydata</strong>
2740
<br><dt><strong>affydata</strong>
2736
     <dd>Affymetrix data for demonstration purposes. 
2741
     <dd>Affymetrix data for demonstration purposes. 
2737
<br><dt><strong>annaffy</strong>
2742
<br><dt><strong>annaffy</strong>
2738
     <dd>Functions for handling data from Bioconductor Affymetrix annotation data
2743
     <dd>Functions for handling data from Bioconductor Affymetrix annotation data
2739
packages. 
2744
packages. 
2740
<br><dt><strong>annotate</strong>
2745
<br><dt><strong>annotate</strong>
2741
     <dd>Associate experimental data in real time to biological metadata from web
2746
     <dd>Associate experimental data in real time to biological metadata from web
2742
databases such as GenBank, LocusLink and PubMed.  Process and store
2747
databases such as GenBank, LocusLink and PubMed.  Process and store
2743
query results.  Generate <small>HTML</small> reports of analyses. 
2748
query results.  Generate <small>HTML</small> reports of analyses. 
2744
<br><dt><strong>ctc</strong>
2749
<br><dt><strong>ctc</strong>
2745
     <dd>Tools to export and import Tree and Cluster to other programs. 
2750
     <dd>Tools to export and import Tree and Cluster to other programs. 
2746
<br><dt><strong>daMA</strong>
2751
<br><dt><strong>daMA</strong>
2747
     <dd>Functions for the efficient design of factorial two-color microarray
2752
     <dd>Functions for the efficient design of factorial two-color microarray
2748
experiments and for the statistical analysis of factorial microarray
2753
experiments and for the statistical analysis of factorial microarray
2749
data. 
2754
data. 
2750
<br><dt><strong>edd</strong>
2755
<br><dt><strong>edd</strong>
2751
     <dd>Expression density diagnostics: graphical methods and pattern
2756
     <dd>Expression density diagnostics: graphical methods and pattern
2752
recognition algorithms for distribution shape classification. 
2757
recognition algorithms for distribution shape classification. 
2753
<br><dt><strong>externalVector</strong>
2758
<br><dt><strong>externalVector</strong>
2754
     <dd>Basic class definitions and generics for external pointer based vector
2759
     <dd>Basic class definitions and generics for external pointer based vector
2755
objects for R. 
2760
objects for R. 
2756
<br><dt><strong>factDesign</strong>
2761
<br><dt><strong>factDesign</strong>
2757
     <dd>A set of tools for analyzing data from factorial designed micraorray
2762
     <dd>A set of tools for analyzing data from factorial designed micraorray
2758
experiments.  The functions can be used to evaluate appropriate tests of
2763
experiments.  The functions can be used to evaluate appropriate tests of
2759
contrast and perform single outlier detection. 
2764
contrast and perform single outlier detection. 
2760
<br><dt><strong>gcrma</strong>
2765
<br><dt><strong>gcrma</strong>
2761
     <dd>Background adjustment using sequence information. 
2766
     <dd>Background adjustment using sequence information. 
2762
<br><dt><strong>genefilter</strong>
2767
<br><dt><strong>genefilter</strong>
2763
     <dd>Tools for sequentially filtering genes using a wide variety of filtering
2768
     <dd>Tools for sequentially filtering genes using a wide variety of filtering
2764
functions.  Example of filters include: number of missing value,
2769
functions.  Example of filters include: number of missing value,
2765
coefficient of variation of expression measures, ANOVA p-value,
2770
coefficient of variation of expression measures, ANOVA p-value,
2766
Cox model p-values.  Sequential application of filtering
2771
Cox model p-values.  Sequential application of filtering
2767
functions to genes. 
2772
functions to genes. 
2768
<br><dt><strong>geneplotter</strong>
2773
<br><dt><strong>geneplotter</strong>
2769
     <dd>Graphical tools for genomic data, for example for plotting expression
2774
     <dd>Graphical tools for genomic data, for example for plotting expression
2770
data along a chromosome or producing color images of expression data
2775
data along a chromosome or producing color images of expression data
2771
matrices. 
2776
matrices. 
2772
<br><dt><strong>globaltest</strong>
2777
<br><dt><strong>globaltest</strong>
2773
     <dd>Testing globally whether a group of genes is significantly related to
2778
     <dd>Testing globally whether a group of genes is significantly related to
2774
some clinical variable of interest. 
2779
some clinical variable of interest. 
2775
<br><dt><strong>gpls</strong>
2780
<br><dt><strong>gpls</strong>
2776
     <dd>Classification using generalized partial least squares for two-group and
2781
     <dd>Classification using generalized partial least squares for two-group and
2777
multi-group classification. 
2782
multi-group classification. 
2778
<br><dt><strong>graph</strong>
2783
<br><dt><strong>graph</strong>
2779
     <dd>Classes and tools for creating and manipulating graphs within R. 
2784
     <dd>Classes and tools for creating and manipulating graphs within R. 
2780
<br><dt><strong>hexbin</strong>
2785
<br><dt><strong>hexbin</strong>
2781
     <dd>Binning functions, in particular hexagonal bins for graphing. 
2786
     <dd>Binning functions, in particular hexagonal bins for graphing. 
2782
<br><dt><strong>limma</strong>
2787
<br><dt><strong>limma</strong>
2783
     <dd>Linear models for microarray data. 
2788
     <dd>Linear models for microarray data. 
2784
<br><dt><strong>makecdfenv</strong>
2789
<br><dt><strong>makecdfenv</strong>
2785
     <dd>Two functions.  One reads a Affymetrix chip description file (CDF) and
2790
     <dd>Two functions.  One reads a Affymetrix chip description file (CDF) and
2786
creates a hash table environment containing the location/probe set
2791
creates a hash table environment containing the location/probe set
2787
membership mapping.  The other creates a package that automatically loads
2792
membership mapping.  The other creates a package that automatically loads
2788
that environment. 
2793
that environment. 
2789
<br><dt><strong>marrayClasses</strong>
2794
<br><dt><strong>marrayClasses</strong>
2790
     <dd>Class definitions for pre-normalized and normalized cDNA microarray
2795
     <dd>Class definitions for pre-normalized and normalized cDNA microarray
2791
data.  Basic methods for accessing/replacing, printing, and subsetting. 
2796
data.  Basic methods for accessing/replacing, printing, and subsetting. 
2792
<br><dt><strong>marrayInput</strong>
2797
<br><dt><strong>marrayInput</strong>
2793
     <dd>Functions for reading microarray data into R from different image
2798
     <dd>Functions for reading microarray data into R from different image
2794
analysis output files, and probe and target description files.  Widgets
2799
analysis output files, and probe and target description files.  Widgets
2795
are supplied to facilitate and automate data input and the creation of
2800
are supplied to facilitate and automate data input and the creation of
2796
microarray specific R objects for storing these data. 
2801
microarray specific R objects for storing these data. 
2797
<br><dt><strong>marrayNorm</strong>
2802
<br><dt><strong>marrayNorm</strong>
2798
     <dd>Functions for location and scale normalization procedures based on
2803
     <dd>Functions for location and scale normalization procedures based on
2799
robust local regression. 
2804
robust local regression. 
2800
<br><dt><strong>marrayPlots</strong>
2805
<br><dt><strong>marrayPlots</strong>
2801
     <dd>Functions for diagnostic plots for pre- and post-normalization cDNA
2806
     <dd>Functions for diagnostic plots for pre- and post-normalization cDNA
2802
microarray intensity data: boxplots, scatter-plots, color images. 
2807
microarray intensity data: boxplots, scatter-plots, color images. 
2803
<br><dt><strong>marrayTools</strong>
2808
<br><dt><strong>marrayTools</strong>
2804
     <dd>Miscellaneous functions used in the functional genomics core facility in
2809
     <dd>Miscellaneous functions used in the functional genomics core facility in
2805
UCB and UCSF. 
2810
UCB and UCSF. 
2806
<br><dt><strong>matchprobes</strong>
2811
<br><dt><strong>matchprobes</strong>
2807
     <dd>ools for sequence matching of probes on arrays. 
2812
     <dd>ools for sequence matching of probes on arrays. 
2808
<br><dt><strong>multtest</strong>
2813
<br><dt><strong>multtest</strong>
2809
     <dd>Multiple testing procedures for controlling the family-wise error rate
2814
     <dd>Multiple testing procedures for controlling the family-wise error rate
2810
(FWER) and the false discovery rate (FDR).  Tests can be based on
2815
(FWER) and the false discovery rate (FDR).  Tests can be based on
2811
t- or F-statistics for one- and two-factor designs, and
2816
t- or F-statistics for one- and two-factor designs, and
2812
permutation procedures are available to estimate adjusted
2817
permutation procedures are available to estimate adjusted
2813
p-values. 
2818
p-values. 
2814
<br><dt><strong>ontoTools</strong>
2819
<br><dt><strong>ontoTools</strong>
2815
     <dd>Graphs and sparse matrices for working with ontologies. 
2820
     <dd>Graphs and sparse matrices for working with ontologies. 
2816
<br><dt><strong>pamr</strong>
2821
<br><dt><strong>pamr</strong>
2817
     <dd>Pam: prediction analysis for microarrays. 
2822
     <dd>Pam: prediction analysis for microarrays. 
2818
<br><dt><strong>reposTools</strong>
2823
<br><dt><strong>reposTools</strong>
2819
     <dd>Tools for dealing with file repositories and allow users to easily
2824
     <dd>Tools for dealing with file repositories and allow users to easily
2820
install, update, and distribute packages, vignettes, and other files. 
2825
install, update, and distribute packages, vignettes, and other files. 
2821
<br><dt><strong>rhdf5</strong>
2826
<br><dt><strong>rhdf5</strong>
2822
     <dd>Storage and retrieval of large datasets using the HDF5 library and file
2827
     <dd>Storage and retrieval of large datasets using the HDF5 library and file
2823
format. 
2828
format. 
2824
<br><dt><strong>siggenes</strong>
2829
<br><dt><strong>siggenes</strong>
2825
     <dd>Identifying differentially expressed genes and estimating the False
2830
     <dd>Identifying differentially expressed genes and estimating the False
2826
Discovery Rate (FDR) with both the Significance Analysis of Microarrays
2831
Discovery Rate (FDR) with both the Significance Analysis of Microarrays
2827
(SAM) and the Empirical Bayes Analyses of Microarrays (EBAM). 
2832
(SAM) and the Empirical Bayes Analyses of Microarrays (EBAM). 
2828
<br><dt><strong>splicegear</strong>
2833
<br><dt><strong>splicegear</strong>
2829
     <dd>A set of tools to work with alternative splicing. 
2834
     <dd>A set of tools to work with alternative splicing. 
2830
<br><dt><strong>tkWidgets</strong>
2835
<br><dt><strong>tkWidgets</strong>
2831
     <dd>Widgets in Tcl/Tk that provide functionality for Bioconductor packages. 
2836
     <dd>Widgets in Tcl/Tk that provide functionality for Bioconductor packages. 
2832
<br><dt><strong>vsn</strong>
2837
<br><dt><strong>vsn</strong>
2833
     <dd>Calibration and variance stabilizing transformations for both Affymetrix
2838
     <dd>Calibration and variance stabilizing transformations for both Affymetrix
2834
and cDNA array data. 
2839
and cDNA array data. 
2835
<br><dt><strong>widgetTools</strong>
2840
<br><dt><strong>widgetTools</strong>
2836
     <dd>Tools for creating Tcl/Tk widgets, i.e., small-scale graphical user
2841
     <dd>Tools for creating Tcl/Tk widgets, i.e., small-scale graphical user
2837
interfaces. 
2842
interfaces. 
2838
</dl>
2843
</dl>
2839
 
2844
 
2840
<div class="node">
2845
<div class="node">
2841
<p><hr>
2846
<p><hr>
2842
Node:&nbsp;<a name="Other%20add-on%20packages">Other add-on packages</a>,
2847
Node:&nbsp;<a name="Other%20add-on%20packages">Other add-on packages</a>,
2843
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Add-on%20packages%20from%20BioConductor">Add-on packages from BioConductor</a>,
2848
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Add-on%20packages%20from%20BioConductor">Add-on packages from BioConductor</a>,
2844
Up:&nbsp;<a rel="up" accesskey="u" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>
2849
Up:&nbsp;<a rel="up" accesskey="u" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>
2845
<br>
2850
<br>
2846
</div>
2851
</div>
2847
 
2852
 
2848
<h3 class="subsection">5.1.5 Other add-on packages</h4>
2853
<h3 class="subsection">5.1.5 Other add-on packages</h4>
2849
 
2854
 
2850
<a href="mailto:jlindsey@luc.ac.be">Jim Lindsey</a> has written a collection of R
2855
<a href="mailto:jlindsey@luc.ac.be">Jim Lindsey</a> has written a collection of R
2851
packages for nonlinear regression and repeated measurements, consisting
2856
packages for nonlinear regression and repeated measurements, consisting
2852
of <strong>event</strong> (event history procedures and models), <strong>gnlm</strong>
2857
of <strong>event</strong> (event history procedures and models), <strong>gnlm</strong>
2853
(generalized nonlinear regression models), <strong>growth</strong> (multivariate
2858
(generalized nonlinear regression models), <strong>growth</strong> (multivariate
2854
normal and elliptically-contoured repeated measurements models),
2859
normal and elliptically-contoured repeated measurements models),
2855
<strong>repeated</strong> (non-normal repeated measurements models),
2860
<strong>repeated</strong> (non-normal repeated measurements models),
2856
<strong>rmutil</strong> (utilities for nonlinear regression and repeated
2861
<strong>rmutil</strong> (utilities for nonlinear regression and repeated
2857
measurements), and <strong>stable</strong> (probability functions and
2862
measurements), and <strong>stable</strong> (probability functions and
2858
generalized regression models for stable distributions).  All analyses
2863
generalized regression models for stable distributions).  All analyses
2859
in the new edition of his book "Models for Repeated Measurements"
2864
in the new edition of his book "Models for Repeated Measurements"
2860
(1999, Oxford University Press) were carried out using these packages. 
2865
(1999, Oxford University Press) were carried out using these packages. 
2861
Jim has also started <strong>dna</strong>, a package with procedures for the
2866
Jim has also started <strong>dna</strong>, a package with procedures for the
2862
analysis of DNA sequences.  Jim's packages can be obtained from
2867
analysis of DNA sequences.  Jim's packages can be obtained from
2863
<a href="http://www.luc.ac.be/~jlindsey/rcode.html">http://www.luc.ac.be/~jlindsey/rcode.html</a>.
2868
<a href="http://www.luc.ac.be/~jlindsey/rcode.html">http://www.luc.ac.be/~jlindsey/rcode.html</a>.
2864
 
2869
 
2865
   <p>More code has been posted to the R-help mailing list, and can be
2870
   <p>More code has been posted to the R-help mailing list, and can be
2866
obtained from the mailing list archive.
2871
obtained from the mailing list archive.
2867
 
2872
 
2868
<div class="node">
2873
<div class="node">
2869
<p><hr>
2874
<p><hr>
2870
Node:&nbsp;<a name="How%20can%20add-on%20packages%20be%20installed%3f">How can add-on packages be installed?</a>,
2875
Node:&nbsp;<a name="How%20can%20add-on%20packages%20be%20installed%3f">How can add-on packages be installed?</a>,
2871
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20add-on%20packages%20be%20used%3f">How can add-on packages be used?</a>,
2876
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20add-on%20packages%20be%20used%3f">How can add-on packages be used?</a>,
2872
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>,
2877
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Which%20add-on%20packages%20exist%20for%20R%3f">Which add-on packages exist for R?</a>,
2873
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
2878
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
2874
<br>
2879
<br>
2875
</div>
2880
</div>
2876
 
2881
 
2877
<h3 class="section">5.2 How can add-on packages be installed?</h3>
2882
<h3 class="section">5.2 How can add-on packages be installed?</h3>
2878
 
2883
 
2879
<p>(Unix only.)  The add-on packages on <small>CRAN</small> come as gzipped tar
2884
<p>(Unix only.)  The add-on packages on <small>CRAN</small> come as gzipped tar
2880
files named <code></code><var>pkg</var><code>_</code><var>version</var><code>.tar.gz</code>, which may in fact be
2885
files named <code></code><var>pkg</var><code>_</code><var>version</var><code>.tar.gz</code>, which may in fact be
2881
"bundles" containing more than one package.  Provided that
2886
"bundles" containing more than one package.  Provided that
2882
<code>tar</code> and <code>gzip</code> are available on your system, type
2887
<code>tar</code> and <code>gzip</code> are available on your system, type
2883
 
2888
 
2884
<pre class="example">     $ R CMD INSTALL /path/to/<var>pkg</var>_<var>version</var>.tar.gz
2889
<pre class="example">     $ R CMD INSTALL /path/to/<var>pkg</var>_<var>version</var>.tar.gz
2885
     </pre>
2890
     </pre>
2886
 
2891
 
2887
<p>at the shell prompt to install to the library tree rooted at the first
2892
<p>at the shell prompt to install to the library tree rooted at the first
2888
directory given in <code>R_LIBS</code> (see below) if this is set and non-null,
2893
directory given in <code>R_LIBS</code> (see below) if this is set and non-null,
2889
and to the default library (the <code>library</code> subdirectory of
2894
and to the default library (the <code>library</code> subdirectory of
2890
<code>R_HOME</code>) otherwise.  (Versions of R prior to 1.3.0 installed
2895
<code>R_HOME</code>) otherwise.  (Versions of R prior to 1.3.0 installed
2891
to the default library by default.)
2896
to the default library by default.)
2892
 
2897
 
2893
   <p>To install to another tree (e.g., your private one), use
2898
   <p>To install to another tree (e.g., your private one), use
2894
 
2899
 
2895
<pre class="example">     $ R CMD INSTALL -l <var>lib</var> /path/to/<var>pkg</var>_<var>version</var>.tar.gz
2900
<pre class="example">     $ R CMD INSTALL -l <var>lib</var> /path/to/<var>pkg</var>_<var>version</var>.tar.gz
2896
     </pre>
2901
     </pre>
2897
 
2902
 
2898
<p>where <var>lib</var> gives the path to the library tree to install to.
2903
<p>where <var>lib</var> gives the path to the library tree to install to.
2899
 
2904
 
2900
   <p>Even more conveniently, you can install and automatically update
2905
   <p>Even more conveniently, you can install and automatically update
2901
packages from within R if you have access to <small>CRAN</small>.  See the
2906
packages from within R if you have access to <small>CRAN</small>.  See the
2902
help page for <code>CRAN.packages()</code> for more information.
2907
help page for <code>CRAN.packages()</code> for more information.
2903
 
2908
 
2904
   <p>You can use several library trees of add-on packages.  The easiest way
2909
   <p>You can use several library trees of add-on packages.  The easiest way
2905
to tell R to use these is via the environment variable <code>R_LIBS</code>
2910
to tell R to use these is via the environment variable <code>R_LIBS</code>
2906
which should be a colon-separated list of directories at which R library
2911
which should be a colon-separated list of directories at which R library
2907
trees are rooted.  You do not have to specify the default tree in
2912
trees are rooted.  You do not have to specify the default tree in
2908
<code>R_LIBS</code>.  E.g., to use a private tree in <code>$HOME/lib/R</code> and a
2913
<code>R_LIBS</code>.  E.g., to use a private tree in <code>$HOME/lib/R</code> and a
2909
public site-wide tree in <code>/usr/local/lib/R-contrib</code>, put
2914
public site-wide tree in <code>/usr/local/lib/R-contrib</code>, put
2910
 
2915
 
2911
<pre class="example">     R_LIBS="$HOME/lib/R:/usr/local/lib/R-contrib"; export R_LIBS
2916
<pre class="example">     R_LIBS="$HOME/lib/R:/usr/local/lib/R-contrib"; export R_LIBS
2912
     </pre>
2917
     </pre>
2913
 
2918
 
2914
<p>into your (Bourne) shell profile or even preferably, add the line
2919
<p>into your (Bourne) shell profile or even preferably, add the line
2915
 
2920
 
2916
<pre class="example">     R_LIBS="$HOME/lib/R:/usr/local/lib/R-contrib"
2921
<pre class="example">     R_LIBS="$HOME/lib/R:/usr/local/lib/R-contrib"
2917
     </pre>
2922
     </pre>
2918
 
2923
 
2919
<p>your <code>~/.Renviron</code> file.  (Note that no <code>export</code> statement is
2924
<p>your <code>~/.Renviron</code> file.  (Note that no <code>export</code> statement is
2920
needed or allowed in this file; see the on-line help for <code>Startup</code>
2925
needed or allowed in this file; see the on-line help for <code>Startup</code>
2921
for more information.)
2926
for more information.)
2922
 
2927
 
2923
<div class="node">
2928
<div class="node">
2924
<p><hr>
2929
<p><hr>
2925
Node:&nbsp;<a name="How%20can%20add-on%20packages%20be%20used%3f">How can add-on packages be used?</a>,
2930
Node:&nbsp;<a name="How%20can%20add-on%20packages%20be%20used%3f">How can add-on packages be used?</a>,
2926
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20add-on%20packages%20be%20removed%3f">How can add-on packages be removed?</a>,
2931
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20add-on%20packages%20be%20removed%3f">How can add-on packages be removed?</a>,
2927
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20add-on%20packages%20be%20installed%3f">How can add-on packages be installed?</a>,
2932
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20add-on%20packages%20be%20installed%3f">How can add-on packages be installed?</a>,
2928
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
2933
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
2929
<br>
2934
<br>
2930
</div>
2935
</div>
2931
 
2936
 
2932
<h3 class="section">5.3 How can add-on packages be used?</h3>
2937
<h3 class="section">5.3 How can add-on packages be used?</h3>
2933
 
2938
 
2934
<p>To find out which additional packages are available on your system, type
2939
<p>To find out which additional packages are available on your system, type
2935
 
2940
 
2936
<pre class="example">     library()
2941
<pre class="example">     library()
2937
     </pre>
2942
     </pre>
2938
 
2943
 
2939
<p>at the R prompt.
2944
<p>at the R prompt.
2940
 
2945
 
2941
   <p>This produces something like
2946
   <p>This produces something like
2942
 
2947
 
2943
<pre class="smallexample">     Packages in `/home/me/lib/R':
2948
<pre class="smallexample">     Packages in `/home/me/lib/R':
2944
     
2949
     
2945
     mystuff       My own R functions, nicely packaged but not documented
2950
     mystuff       My own R functions, nicely packaged but not documented
2946
     
2951
     
2947
     Packages in `/usr/local/lib/R/library':
2952
     Packages in `/usr/local/lib/R/library':
2948
     
2953
     
2949
     KernSmooth    Functions for kernel smoothing for Wand &amp; Jones (1995)
2954
     KernSmooth    Functions for kernel smoothing for Wand &amp; Jones (1995)
2950
     MASS          Main Library of Venables and Ripley's MASS
2955
     MASS          Main Library of Venables and Ripley's MASS
2951
     base          The R base package
2956
     base          The R base package
2952
     boot          Bootstrap R (S-Plus) Functions (Canty)
2957
     boot          Bootstrap R (S-Plus) Functions (Canty)
2953
     class         Functions for classification
2958
     class         Functions for classification
2954
     cluster       Functions for clustering (by Rousseeuw et al.)
2959
     cluster       Functions for clustering (by Rousseeuw et al.)
2955
     ctest         Classical Tests
2960
     ctest         Classical Tests
2956
     eda           Exploratory Data Analysis
2961
     eda           Exploratory Data Analysis
2957
     foreign       Read data stored by Minitab, S, SAS, SPSS, Stata, ...
2962
     foreign       Read data stored by Minitab, S, SAS, SPSS, Stata, ...
2958
     grid          The Grid Graphics Package
2963
     grid          The Grid Graphics Package
2959
     lattice       Lattice Graphics
2964
     lattice       Lattice Graphics
2960
     lqs           Resistant Regression and Covariance Estimation
2965
     lqs           Resistant Regression and Covariance Estimation
2961
     methods       Formal Methods and Classes
2966
     methods       Formal Methods and Classes
2962
     mle           Maximum likelihood estimation
2967
     mle           Maximum likelihood estimation
2963
     mgcv          Multiple smoothing parameter estimation and GAMs by GCV
2968
     mgcv          Multiple smoothing parameter estimation and GAMs by GCV
2964
     modreg        Modern Regression: Smoothing and Local Methods
2969
     modreg        Modern Regression: Smoothing and Local Methods
2965
     mva           Classical Multivariate Analysis
2970
     mva           Classical Multivariate Analysis
2966
     nlme          Linear and nonlinear mixed effects models
2971
     nlme          Linear and nonlinear mixed effects models
2967
     nls           Nonlinear regression
2972
     nls           Nonlinear regression
2968
     nnet          Feed-forward neural networks and multinomial log-linear
2973
     nnet          Feed-forward neural networks and multinomial log-linear
2969
                   models
2974
                   models
2970
     rpart         Recursive partitioning
2975
     rpart         Recursive partitioning
2971
     spatial       functions for kriging and point pattern analysis
2976
     spatial       functions for kriging and point pattern analysis
2972
     splines       Regression Spline Functions and Classes
2977
     splines       Regression Spline Functions and Classes
2973
     stepfun       Step Functions, including Empirical Distributions
2978
     stepfun       Step Functions, including Empirical Distributions
2974
     survival      Survival analysis, including penalised likelihood
2979
     survival      Survival analysis, including penalised likelihood
2975
     tcltk         Tcl/Tk Interface
2980
     tcltk         Tcl/Tk Interface
2976
     tools         Tools for Package Development and Administration
2981
     tools         Tools for Package Development and Administration
2977
     ts            Time series functions
2982
     ts            Time series functions
2978
     </pre>
2983
     </pre>
2979
 
2984
 
2980
   <p>You can "load" the installed package <var>pkg</var> by
2985
   <p>You can "load" the installed package <var>pkg</var> by
2981
 
2986
 
2982
<pre class="example">     library(<var>pkg</var>)
2987
<pre class="example">     library(<var>pkg</var>)
2983
     </pre>
2988
     </pre>
2984
 
2989
 
2985
   <p>You can then find out which functions it provides by typing one of
2990
   <p>You can then find out which functions it provides by typing one of
2986
 
2991
 
2987
<pre class="example">     library(help = <var>pkg</var>)
2992
<pre class="example">     library(help = <var>pkg</var>)
2988
     help(package = <var>pkg</var>)
2993
     help(package = <var>pkg</var>)
2989
     </pre>
2994
     </pre>
2990
 
2995
 
2991
   <p>You can unload the loaded package <var>pkg</var> by
2996
   <p>You can unload the loaded package <var>pkg</var> by
2992
 
2997
 
2993
<pre class="example">     detach("package:<var>pkg</var>")
2998
<pre class="example">     detach("package:<var>pkg</var>")
2994
     </pre>
2999
     </pre>
2995
 
3000
 
2996
<div class="node">
3001
<div class="node">
2997
<p><hr>
3002
<p><hr>
2998
Node:&nbsp;<a name="How%20can%20add-on%20packages%20be%20removed%3f">How can add-on packages be removed?</a>,
3003
Node:&nbsp;<a name="How%20can%20add-on%20packages%20be%20removed%3f">How can add-on packages be removed?</a>,
2999
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20create%20an%20R%20package%3f">How can I create an R package?</a>,
3004
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20create%20an%20R%20package%3f">How can I create an R package?</a>,
3000
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20add-on%20packages%20be%20used%3f">How can add-on packages be used?</a>,
3005
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20add-on%20packages%20be%20used%3f">How can add-on packages be used?</a>,
3001
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
3006
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
3002
<br>
3007
<br>
3003
</div>
3008
</div>
3004
 
3009
 
3005
<h3 class="section">5.4 How can add-on packages be removed?</h3>
3010
<h3 class="section">5.4 How can add-on packages be removed?</h3>
3006
 
3011
 
3007
<p>Use
3012
<p>Use
3008
 
3013
 
3009
<pre class="example">     $ R CMD REMOVE <var>pkg_1</var> ... <var>pkg_n</var>
3014
<pre class="example">     $ R CMD REMOVE <var>pkg_1</var> ... <var>pkg_n</var>
3010
     </pre>
3015
     </pre>
3011
 
3016
 
3012
<p>to remove the packages <var>pkg_1</var>, <small class="dots">...</small>, <var>pkg_n</var> from the
3017
<p>to remove the packages <var>pkg_1</var>, <small class="dots">...</small>, <var>pkg_n</var> from the
3013
library tree rooted at the first directory given in <code>R_LIBS</code> if this
3018
library tree rooted at the first directory given in <code>R_LIBS</code> if this
3014
is set and non-null, and from the default library otherwise.  (Versions
3019
is set and non-null, and from the default library otherwise.  (Versions
3015
of R prior to 1.3.0 removed from the default library by default.)
3020
of R prior to 1.3.0 removed from the default library by default.)
3016
 
3021
 
3017
   <p>To remove from library <var>lib</var>, do
3022
   <p>To remove from library <var>lib</var>, do
3018
 
3023
 
3019
<pre class="example">     $ R CMD REMOVE -l <var>lib</var> <var>pkg_1</var> ... <var>pkg_n</var>
3024
<pre class="example">     $ R CMD REMOVE -l <var>lib</var> <var>pkg_1</var> ... <var>pkg_n</var>
3020
     </pre>
3025
     </pre>
3021
 
3026
 
3022
<div class="node">
3027
<div class="node">
3023
<p><hr>
3028
<p><hr>
3024
Node:&nbsp;<a name="How%20can%20I%20create%20an%20R%20package%3f">How can I create an R package?</a>,
3029
Node:&nbsp;<a name="How%20can%20I%20create%20an%20R%20package%3f">How can I create an R package?</a>,
3025
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20contribute%20to%20R%3f">How can I contribute to R?</a>,
3030
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20contribute%20to%20R%3f">How can I contribute to R?</a>,
3026
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20add-on%20packages%20be%20removed%3f">How can add-on packages be removed?</a>,
3031
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20add-on%20packages%20be%20removed%3f">How can add-on packages be removed?</a>,
3027
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
3032
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
3028
<br>
3033
<br>
3029
</div>
3034
</div>
3030
 
3035
 
3031
<h3 class="section">5.5 How can I create an R package?</h3>
3036
<h3 class="section">5.5 How can I create an R package?</h3>
3032
 
3037
 
3033
<p>A package consists of a subdirectory containing the files
3038
<p>A package consists of a subdirectory containing the files
3034
<code>DESCRIPTION</code> and <code>INDEX</code>, and the subdirectories <code>R</code>,
3039
<code>DESCRIPTION</code> and <code>INDEX</code>, and the subdirectories <code>R</code>,
3035
<code>data</code>, <code>demo</code>, <code>exec</code>, <code>inst</code>, <code>man</code>,
3040
<code>data</code>, <code>demo</code>, <code>exec</code>, <code>inst</code>, <code>man</code>,
3036
<code>src</code>, and <code>tests</code> (some of which can be missing).  Optionally
3041
<code>src</code>, and <code>tests</code> (some of which can be missing).  Optionally
3037
the package can also contain script files <code>configure</code> and
3042
the package can also contain script files <code>configure</code> and
3038
<code>cleanup</code> which are executed before and after installation.
3043
<code>cleanup</code> which are executed before and after installation.
3039
 
3044
 
3040
   <p>See section "Creating R packages" in <cite>Writing R Extensions</cite>, for
3045
   <p>See section "Creating R packages" in <cite>Writing R Extensions</cite>, for
3041
details. 
3046
details. 
3042
This manual is included in the R distribution, see <a href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>, and gives information on package structure, the
3047
This manual is included in the R distribution, see <a href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>, and gives information on package structure, the
3043
configure and cleanup mechanisms, and on automated package checking and
3048
configure and cleanup mechanisms, and on automated package checking and
3044
building.
3049
building.
3045
 
3050
 
3046
   <p>R version 1.3.0 has added the function <code>package.skeleton()</code> which
3051
   <p>R version 1.3.0 has added the function <code>package.skeleton()</code> which
3047
will set up directories, save data and code, and create skeleton help
3052
will set up directories, save data and code, and create skeleton help
3048
files for a set of R functions and datasets.
3053
files for a set of R functions and datasets.
3049
 
3054
 
3050
   <p>See <a href="#What%20is%20CRAN%3f">What is CRAN?</a>, for information on uploading a package to <small>CRAN</small>.
3055
   <p>See <a href="#What%20is%20CRAN%3f">What is CRAN?</a>, for information on uploading a package to <small>CRAN</small>.
3051
 
3056
 
3052
<div class="node">
3057
<div class="node">
3053
<p><hr>
3058
<p><hr>
3054
Node:&nbsp;<a name="How%20can%20I%20contribute%20to%20R%3f">How can I contribute to R?</a>,
3059
Node:&nbsp;<a name="How%20can%20I%20contribute%20to%20R%3f">How can I contribute to R?</a>,
3055
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20create%20an%20R%20package%3f">How can I create an R package?</a>,
3060
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20create%20an%20R%20package%3f">How can I create an R package?</a>,
3056
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
3061
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Add-On%20Packages">R Add-On Packages</a>
3057
<br>
3062
<br>
3058
</div>
3063
</div>
3059
 
3064
 
3060
<h3 class="section">5.6 How can I contribute to R?</h3>
3065
<h3 class="section">5.6 How can I contribute to R?</h3>
3061
 
3066
 
3062
<p>R is in active development and there is always a risk of bugs creeping
3067
<p>R is in active development and there is always a risk of bugs creeping
3063
in.  Also, the developers do not have access to all possible machines
3068
in.  Also, the developers do not have access to all possible machines
3064
capable of running R.  So, simply using it and communicating problems is
3069
capable of running R.  So, simply using it and communicating problems is
3065
certainly of great value.
3070
certainly of great value.
3066
 
3071
 
3067
   <p>One place where functionality is still missing is the modeling software
3072
   <p>One place where functionality is still missing is the modeling software
3068
as described in "Statistical Models in S" (see <a href="#What%20is%20S%3f">What is S?</a>);
3073
as described in "Statistical Models in S" (see <a href="#What%20is%20S%3f">What is S?</a>);
3069
Generalized Additive Models (see <a href="#Are%20GAMs%20implemented%20in%20R%3f">Are GAMs implemented in R?</a>) and
3074
Generalized Additive Models (see <a href="#Are%20GAMs%20implemented%20in%20R%3f">Are GAMs implemented in R?</a>) and
3070
some of the nonlinear modeling code are not there yet.
3075
some of the nonlinear modeling code are not there yet.
3071
 
3076
 
3072
   <p>The <a href="http://developer.R-project.org/">R Developer Page</a> acts as an
3077
   <p>The <a href="http://developer.R-project.org/">R Developer Page</a> acts as an
3073
intermediate repository for more or less finalized ideas and plans for
3078
intermediate repository for more or less finalized ideas and plans for
3074
the R statistical system.  It contains (pointers to) TODO lists, RFCs,
3079
the R statistical system.  It contains (pointers to) TODO lists, RFCs,
3075
various other writeups, ideas lists, and CVS miscellanea.
3080
various other writeups, ideas lists, and CVS miscellanea.
3076
 
3081
 
3077
   <p>Many (more) of the packages available at the Statlib S Repository might
3082
   <p>Many (more) of the packages available at the Statlib S Repository might
3078
be worth porting to R.
3083
be worth porting to R.
3079
 
3084
 
3080
   <p>If you are interested in working on any of these projects, please notify
3085
   <p>If you are interested in working on any of these projects, please notify
3081
<a href="mailto:Kurt.Hornik@R-project.org">Kurt Hornik</a>.
3086
<a href="mailto:Kurt.Hornik@R-project.org">Kurt Hornik</a>.
3082
 
3087
 
3083
<div class="node">
3088
<div class="node">
3084
<p><hr>
3089
<p><hr>
3085
Node:&nbsp;<a name="R%20and%20Emacs">R and Emacs</a>,
3090
Node:&nbsp;<a name="R%20and%20Emacs">R and Emacs</a>,
3086
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Miscellanea">R Miscellanea</a>,
3091
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Miscellanea">R Miscellanea</a>,
3087
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Add-On%20Packages">R Add-On Packages</a>,
3092
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Add-On%20Packages">R Add-On Packages</a>,
3088
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
3093
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
3089
<br>
3094
<br>
3090
</div>
3095
</div>
3091
 
3096
 
3092
<h2 class="chapter">6 R and Emacs</h2>
3097
<h2 class="chapter">6 R and Emacs</h2>
3093
 
3098
 
3094
<ul class="menu">
3099
<ul class="menu">
3095
<li><a accesskey="1" href="#Is%20there%20Emacs%20support%20for%20R%3f">Is there Emacs support for R?</a>: 
3100
<li><a accesskey="1" href="#Is%20there%20Emacs%20support%20for%20R%3f">Is there Emacs support for R?</a>: 
3096
<li><a accesskey="2" href="#Should%20I%20run%20R%20from%20within%20Emacs%3f">Should I run R from within Emacs?</a>: 
3101
<li><a accesskey="2" href="#Should%20I%20run%20R%20from%20within%20Emacs%3f">Should I run R from within Emacs?</a>: 
3097
<li><a accesskey="3" href="#Debugging%20R%20from%20within%20Emacs">Debugging R from within Emacs</a>: 
3102
<li><a accesskey="3" href="#Debugging%20R%20from%20within%20Emacs">Debugging R from within Emacs</a>: 
3098
</ul>
3103
</ul>
3099
 
3104
 
3100
<div class="node">
3105
<div class="node">
3101
<p><hr>
3106
<p><hr>
3102
Node:&nbsp;<a name="Is%20there%20Emacs%20support%20for%20R%3f">Is there Emacs support for R?</a>,
3107
Node:&nbsp;<a name="Is%20there%20Emacs%20support%20for%20R%3f">Is there Emacs support for R?</a>,
3103
Next:&nbsp;<a rel="next" accesskey="n" href="#Should%20I%20run%20R%20from%20within%20Emacs%3f">Should I run R from within Emacs?</a>,
3108
Next:&nbsp;<a rel="next" accesskey="n" href="#Should%20I%20run%20R%20from%20within%20Emacs%3f">Should I run R from within Emacs?</a>,
3104
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20and%20Emacs">R and Emacs</a>,
3109
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20and%20Emacs">R and Emacs</a>,
3105
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20Emacs">R and Emacs</a>
3110
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20Emacs">R and Emacs</a>
3106
<br>
3111
<br>
3107
</div>
3112
</div>
3108
 
3113
 
3109
<h3 class="section">6.1 Is there Emacs support for R?</h3>
3114
<h3 class="section">6.1 Is there Emacs support for R?</h3>
3110
 
3115
 
3111
<p>There is an Emacs package called <small>ESS</small> ("Emacs Speaks
3116
<p>There is an Emacs package called <small>ESS</small> ("Emacs Speaks
3112
Statistics") which provides a standard interface between statistical
3117
Statistics") which provides a standard interface between statistical
3113
programs and statistical processes.  It is intended to provide
3118
programs and statistical processes.  It is intended to provide
3114
assistance for interactive statistical programming and data analysis. 
3119
assistance for interactive statistical programming and data analysis. 
3115
Languages supported include: S dialects (S 3/4, <small>S-PLUS</small> 3.x/4.x/5.x,
3120
Languages supported include: S dialects (S 3/4, <small>S-PLUS</small> 3.x/4.x/5.x,
3116
and R), LispStat dialects (XLispStat, ViSta) and SAS.  Stata and SPSS
3121
and R), LispStat dialects (XLispStat, ViSta) and SAS.  Stata and SPSS
3117
dialect (SPSS, PSPP) support is being examined for possible future
3122
dialect (SPSS, PSPP) support is being examined for possible future
3118
implementation
3123
implementation
3119
 
3124
 
3120
   <p><small>ESS</small> grew out of the need for bug fixes and extensions to
3125
   <p><small>ESS</small> grew out of the need for bug fixes and extensions to
3121
S-mode 4.8 (which was a <small>GNU</small> Emacs interface to S/<small>S-PLUS</small>
3126
S-mode 4.8 (which was a <small>GNU</small> Emacs interface to S/<small>S-PLUS</small>
3122
version 3 only).  The current set of developers desired support for
3127
version 3 only).  The current set of developers desired support for
3123
XEmacs, R, S4, and MS Windows.  In addition, with new modes being
3128
XEmacs, R, S4, and MS Windows.  In addition, with new modes being
3124
developed for R, Stata, and SAS, it was felt that a unifying interface
3129
developed for R, Stata, and SAS, it was felt that a unifying interface
3125
and framework for the user interface would benefit both the user and the
3130
and framework for the user interface would benefit both the user and the
3126
developer, by helping both groups conform to standard Emacs usage.  The
3131
developer, by helping both groups conform to standard Emacs usage.  The
3127
end result is an increase in efficiency for statistical programming and
3132
end result is an increase in efficiency for statistical programming and
3128
data analysis, over the usual tools.
3133
data analysis, over the usual tools.
3129
 
3134
 
3130
   <p>R support contains code for editing R source code (syntactic indentation
3135
   <p>R support contains code for editing R source code (syntactic indentation
3131
and highlighting of source code, partial evaluations of code, loading
3136
and highlighting of source code, partial evaluations of code, loading
3132
and error-checking of code, and source code revision maintenance) and
3137
and error-checking of code, and source code revision maintenance) and
3133
documentation (syntactic indentation and highlighting of source code,
3138
documentation (syntactic indentation and highlighting of source code,
3134
sending examples to running <small>ESS</small> process, and previewing),
3139
sending examples to running <small>ESS</small> process, and previewing),
3135
interacting with an inferior R process from within Emacs (command-line
3140
interacting with an inferior R process from within Emacs (command-line
3136
editing, searchable command history, command-line completion of R object
3141
editing, searchable command history, command-line completion of R object
3137
and file names, quick access to object and search lists, transcript
3142
and file names, quick access to object and search lists, transcript
3138
recording, and an interface to the help system), and transcript
3143
recording, and an interface to the help system), and transcript
3139
manipulation (recording and saving transcript files, manipulating and
3144
manipulation (recording and saving transcript files, manipulating and
3140
editing saved transcripts, and re-evaluating commands from transcript
3145
editing saved transcripts, and re-evaluating commands from transcript
3141
files).
3146
files).
3142
 
3147
 
3143
   <p>The latest stable version of <small>ESS</small> are available via <small>CRAN</small> or
3148
   <p>The latest stable version of <small>ESS</small> are available via <small>CRAN</small> or
3144
the <a href="http://ESS.R-project.org/">ESS web page</a>.  The <small>HTML</small> version
3149
the <a href="http://ESS.R-project.org/">ESS web page</a>.  The <small>HTML</small> version
3145
of the documentation can be found at <a href="http://stat.ethz.ch/ESS/">http://stat.ethz.ch/ESS/</a>.
3150
of the documentation can be found at <a href="http://stat.ethz.ch/ESS/">http://stat.ethz.ch/ESS/</a>.
3146
 
3151
 
3147
   <p><small>ESS</small> comes with detailed installation instructions.
3152
   <p><small>ESS</small> comes with detailed installation instructions.
3148
 
3153
 
3149
   <p>For help with <small>ESS</small>, send email to
3154
   <p>For help with <small>ESS</small>, send email to
3150
<a href="mailto:ESS-help@stat.ethz.ch">ESS-help@stat.ethz.ch</a>.
3155
<a href="mailto:ESS-help@stat.ethz.ch">ESS-help@stat.ethz.ch</a>.
3151
 
3156
 
3152
   <p>Please send bug reports and suggestions on <small>ESS</small> to
3157
   <p>Please send bug reports and suggestions on <small>ESS</small> to
3153
<a href="mailto:ESS-bugs@stat.math.ethz.ch">ESS-bugs@stat.math.ethz.ch</a>.  The easiest way to do this from is
3158
<a href="mailto:ESS-bugs@stat.math.ethz.ch">ESS-bugs@stat.math.ethz.ch</a>.  The easiest way to do this from is
3154
within Emacs by typing <kbd>M-x ess-submit-bug-report</kbd> or using the
3159
within Emacs by typing <kbd>M-x ess-submit-bug-report</kbd> or using the
3155
[ESS] or [iESS] pulldown menus.
3160
[ESS] or [iESS] pulldown menus.
3156
 
3161
 
3157
<div class="node">
3162
<div class="node">
3158
<p><hr>
3163
<p><hr>
3159
Node:&nbsp;<a name="Should%20I%20run%20R%20from%20within%20Emacs%3f">Should I run R from within Emacs?</a>,
3164
Node:&nbsp;<a name="Should%20I%20run%20R%20from%20within%20Emacs%3f">Should I run R from within Emacs?</a>,
3160
Next:&nbsp;<a rel="next" accesskey="n" href="#Debugging%20R%20from%20within%20Emacs">Debugging R from within Emacs</a>,
3165
Next:&nbsp;<a rel="next" accesskey="n" href="#Debugging%20R%20from%20within%20Emacs">Debugging R from within Emacs</a>,
3161
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Is%20there%20Emacs%20support%20for%20R%3f">Is there Emacs support for R?</a>,
3166
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Is%20there%20Emacs%20support%20for%20R%3f">Is there Emacs support for R?</a>,
3162
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20Emacs">R and Emacs</a>
3167
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20Emacs">R and Emacs</a>
3163
<br>
3168
<br>
3164
</div>
3169
</div>
3165
 
3170
 
3166
<h3 class="section">6.2 Should I run R from within Emacs?</h3>
3171
<h3 class="section">6.2 Should I run R from within Emacs?</h3>
3167
 
3172
 
3168
<p>Yes, <em>definitely</em>.  Inferior R mode provides a readline/history
3173
<p>Yes, <em>definitely</em>.  Inferior R mode provides a readline/history
3169
mechanism, object name completion, and syntax-based highlighting of the
3174
mechanism, object name completion, and syntax-based highlighting of the
3170
interaction buffer using Font Lock mode, as well as a very convenient
3175
interaction buffer using Font Lock mode, as well as a very convenient
3171
interface to the R help system.
3176
interface to the R help system.
3172
 
3177
 
3173
   <p>Of course, it also integrates nicely with the mechanisms for editing R
3178
   <p>Of course, it also integrates nicely with the mechanisms for editing R
3174
source using Emacs.  One can write code in one Emacs buffer and send
3179
source using Emacs.  One can write code in one Emacs buffer and send
3175
whole or parts of it for execution to R; this is helpful for both data
3180
whole or parts of it for execution to R; this is helpful for both data
3176
analysis and programming.  One can also seamlessly integrate with a
3181
analysis and programming.  One can also seamlessly integrate with a
3177
revision control system, in order to maintain a log of changes in your
3182
revision control system, in order to maintain a log of changes in your
3178
programs and data, as well as to allow for the retrieval of past
3183
programs and data, as well as to allow for the retrieval of past
3179
versions of the code.
3184
versions of the code.
3180
 
3185
 
3181
   <p>In addition, it allows you to keep a record of your session, which can
3186
   <p>In addition, it allows you to keep a record of your session, which can
3182
also be used for error recovery through the use of the transcript mode.
3187
also be used for error recovery through the use of the transcript mode.
3183
 
3188
 
3184
   <p>To specify command line arguments for the inferior R process, use
3189
   <p>To specify command line arguments for the inferior R process, use
3185
<kbd>C-u M-x R</kbd> for starting R.
3190
<kbd>C-u M-x R</kbd> for starting R.
3186
 
3191
 
3187
<div class="node">
3192
<div class="node">
3188
<p><hr>
3193
<p><hr>
3189
Node:&nbsp;<a name="Debugging%20R%20from%20within%20Emacs">Debugging R from within Emacs</a>,
3194
Node:&nbsp;<a name="Debugging%20R%20from%20within%20Emacs">Debugging R from within Emacs</a>,
3190
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Should%20I%20run%20R%20from%20within%20Emacs%3f">Should I run R from within Emacs?</a>,
3195
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Should%20I%20run%20R%20from%20within%20Emacs%3f">Should I run R from within Emacs?</a>,
3191
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20Emacs">R and Emacs</a>
3196
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20and%20Emacs">R and Emacs</a>
3192
<br>
3197
<br>
3193
</div>
3198
</div>
3194
 
3199
 
3195
<h3 class="section">6.3 Debugging R from within Emacs</h3>
3200
<h3 class="section">6.3 Debugging R from within Emacs</h3>
3196
 
3201
 
3197
<p>To debug R "from within Emacs", there are several possibilities.  To
3202
<p>To debug R "from within Emacs", there are several possibilities.  To
3198
use the Emacs GUD (Grand Unified Debugger) library with the recommended
3203
use the Emacs GUD (Grand Unified Debugger) library with the recommended
3199
debugger GDB, type <kbd>M-x gdb</kbd> and give the path to the R
3204
debugger GDB, type <kbd>M-x gdb</kbd> and give the path to the R
3200
<em>binary</em> as argument.  At the <code>gdb</code> prompt, set
3205
<em>binary</em> as argument.  At the <code>gdb</code> prompt, set
3201
<code>R_HOME</code> and other environment variables as needed (using e.g. 
3206
<code>R_HOME</code> and other environment variables as needed (using e.g. 
3202
<kbd>set env R_HOME /path/to/R/</kbd>, but see also below), and start the
3207
<kbd>set env R_HOME /path/to/R/</kbd>, but see also below), and start the
3203
binary with the desired arguments (e.g., <kbd>run --quiet</kbd>).
3208
binary with the desired arguments (e.g., <kbd>run --quiet</kbd>).
3204
 
3209
 
3205
   <p>If you have <small>ESS</small>, you can do <kbd>C-u M-x R &lt;RET&gt; - d
3210
   <p>If you have <small>ESS</small>, you can do <kbd>C-u M-x R &lt;RET&gt; - d
3206
&lt;SPC&gt; g d b &lt;RET&gt;</kbd> to start an inferior R process with arguments
3211
&lt;SPC&gt; g d b &lt;RET&gt;</kbd> to start an inferior R process with arguments
3207
<code>-d gdb</code>.
3212
<code>-d gdb</code>.
3208
 
3213
 
3209
   <p>A third option is to start an inferior R process via <small>ESS</small>
3214
   <p>A third option is to start an inferior R process via <small>ESS</small>
3210
(<kbd>M-x R</kbd>) and then start GUD (<kbd>M-x gdb</kbd>) giving the R binary
3215
(<kbd>M-x R</kbd>) and then start GUD (<kbd>M-x gdb</kbd>) giving the R binary
3211
(using its full path name) as the program to debug.  Use the program
3216
(using its full path name) as the program to debug.  Use the program
3212
<code>ps</code> to find the process number of the currently running R
3217
<code>ps</code> to find the process number of the currently running R
3213
process then use the <code>attach</code> command in gdb to attach it to that
3218
process then use the <code>attach</code> command in gdb to attach it to that
3214
process.  One advantage of this method is that you have separate
3219
process.  One advantage of this method is that you have separate
3215
<code>*R*</code> and <code>*gud-gdb*</code> windows.  Within the <code>*R*</code> window
3220
<code>*R*</code> and <code>*gud-gdb*</code> windows.  Within the <code>*R*</code> window
3216
you have all the <small>ESS</small> facilities, such as object-name
3221
you have all the <small>ESS</small> facilities, such as object-name
3217
completion, that we know and love.
3222
completion, that we know and love.
3218
 
3223
 
3219
   <p>When using GUD mode for debugging from within Emacs, you may find it
3224
   <p>When using GUD mode for debugging from within Emacs, you may find it
3220
most convenient to use the directory with your code in it as the current
3225
most convenient to use the directory with your code in it as the current
3221
working directory and then make a symbolic link from that directory to
3226
working directory and then make a symbolic link from that directory to
3222
the R binary.  That way <code>.gdbinit</code> can stay in the directory with
3227
the R binary.  That way <code>.gdbinit</code> can stay in the directory with
3223
the code and be used to set up the environment and the search paths for
3228
the code and be used to set up the environment and the search paths for
3224
the source, e.g. as follows:
3229
the source, e.g. as follows:
3225
 
3230
 
3226
<pre class="example">     set env R_HOME /opt/R
3231
<pre class="example">     set env R_HOME /opt/R
3227
     set env R_PAPERSIZE letter
3232
     set env R_PAPERSIZE letter
3228
     set env R_PRINTCMD lpr
3233
     set env R_PRINTCMD lpr
3229
     dir /opt/R/src/appl
3234
     dir /opt/R/src/appl
3230
     dir /opt/R/src/main
3235
     dir /opt/R/src/main
3231
     dir /opt/R/src/nmath
3236
     dir /opt/R/src/nmath
3232
     dir /opt/R/src/unix
3237
     dir /opt/R/src/unix
3233
     </pre>
3238
     </pre>
3234
 
3239
 
3235
<div class="node">
3240
<div class="node">
3236
<p><hr>
3241
<p><hr>
3237
Node:&nbsp;<a name="R%20Miscellanea">R Miscellanea</a>,
3242
Node:&nbsp;<a name="R%20Miscellanea">R Miscellanea</a>,
3238
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Programming">R Programming</a>,
3243
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Programming">R Programming</a>,
3239
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20and%20Emacs">R and Emacs</a>,
3244
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20and%20Emacs">R and Emacs</a>,
3240
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
3245
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
3241
<br>
3246
<br>
3242
</div>
3247
</div>
3243
 
3248
 
3244
<h2 class="chapter">7 R Miscellanea</h2>
3249
<h2 class="chapter">7 R Miscellanea</h2>
3245
 
3250
 
3246
<ul class="menu">
3251
<ul class="menu">
3247
<li><a accesskey="1" href="#Why%20does%20R%20run%20out%20of%20memory%3f">Why does R run out of memory?</a>: 
3252
<li><a accesskey="1" href="#Why%20does%20R%20run%20out%20of%20memory%3f">Why does R run out of memory?</a>: 
3248
<li><a accesskey="2" href="#Why%20does%20sourcing%20a%20correct%20file%20fail%3f">Why does sourcing a correct file fail?</a>: 
3253
<li><a accesskey="2" href="#Why%20does%20sourcing%20a%20correct%20file%20fail%3f">Why does sourcing a correct file fail?</a>: 
3249
<li><a accesskey="3" href="#How%20can%20I%20set%20components%20of%20a%20list%20to%20NULL%3f">How can I set components of a list to NULL?</a>: 
3254
<li><a accesskey="3" href="#How%20can%20I%20set%20components%20of%20a%20list%20to%20NULL%3f">How can I set components of a list to NULL?</a>: 
3250
<li><a accesskey="4" href="#How%20can%20I%20save%20my%20workspace%3f">How can I save my workspace?</a>: 
3255
<li><a accesskey="4" href="#How%20can%20I%20save%20my%20workspace%3f">How can I save my workspace?</a>: 
3251
<li><a accesskey="5" href="#How%20can%20I%20clean%20up%20my%20workspace%3f">How can I clean up my workspace?</a>: 
3256
<li><a accesskey="5" href="#How%20can%20I%20clean%20up%20my%20workspace%3f">How can I clean up my workspace?</a>: 
3252
<li><a accesskey="6" href="#How%20can%20I%20get%20eval()%20and%20D()%20to%20work%3f">How can I get eval() and D() to work?</a>: 
3257
<li><a accesskey="6" href="#How%20can%20I%20get%20eval()%20and%20D()%20to%20work%3f">How can I get eval() and D() to work?</a>: 
3253
<li><a accesskey="7" href="#Why%20do%20my%20matrices%20lose%20dimensions%3f">Why do my matrices lose dimensions?</a>: 
3258
<li><a accesskey="7" href="#Why%20do%20my%20matrices%20lose%20dimensions%3f">Why do my matrices lose dimensions?</a>: 
3254
<li><a accesskey="8" href="#How%20does%20autoloading%20work%3f">How does autoloading work?</a>: 
3259
<li><a accesskey="8" href="#How%20does%20autoloading%20work%3f">How does autoloading work?</a>: 
3255
<li><a accesskey="9" href="#How%20should%20I%20set%20options%3f">How should I set options?</a>: 
3260
<li><a accesskey="9" href="#How%20should%20I%20set%20options%3f">How should I set options?</a>: 
3256
<li><a href="#How%20do%20file%20names%20work%20in%20Windows%3f">How do file names work in Windows?</a>: 
3261
<li><a href="#How%20do%20file%20names%20work%20in%20Windows%3f">How do file names work in Windows?</a>: 
3257
<li><a href="#Why%20does%20plotting%20give%20a%20color%20allocation%20error%3f">Why does plotting give a color allocation error?</a>: 
3262
<li><a href="#Why%20does%20plotting%20give%20a%20color%20allocation%20error%3f">Why does plotting give a color allocation error?</a>: 
3258
<li><a href="#How%20do%20I%20convert%20factors%20to%20numeric%3f">How do I convert factors to numeric?</a>: 
3263
<li><a href="#How%20do%20I%20convert%20factors%20to%20numeric%3f">How do I convert factors to numeric?</a>: 
3259
<li><a href="#Are%20Trellis%20displays%20implemented%20in%20R%3f">Are Trellis displays implemented in R?</a>: 
3264
<li><a href="#Are%20Trellis%20displays%20implemented%20in%20R%3f">Are Trellis displays implemented in R?</a>: 
3260
<li><a href="#What%20are%20the%20enclosing%20and%20parent%20environments%3f">What are the enclosing and parent environments?</a>: 
3265
<li><a href="#What%20are%20the%20enclosing%20and%20parent%20environments%3f">What are the enclosing and parent environments?</a>: 
3261
<li><a href="#How%20can%20I%20substitute%20into%20a%20plot%20label%3f">How can I substitute into a plot label?</a>: 
3266
<li><a href="#How%20can%20I%20substitute%20into%20a%20plot%20label%3f">How can I substitute into a plot label?</a>: 
3262
<li><a href="#What%20are%20valid%20names%3f">What are valid names?</a>: 
3267
<li><a href="#What%20are%20valid%20names%3f">What are valid names?</a>: 
3263
<li><a href="#Are%20GAMs%20implemented%20in%20R%3f">Are GAMs implemented in R?</a>: 
3268
<li><a href="#Are%20GAMs%20implemented%20in%20R%3f">Are GAMs implemented in R?</a>: 
3264
<li><a href="#Why%20is%20the%20output%20not%20printed%20when%20I%20source()%20a%20file%3f">Why is the output not printed when I source() a file?</a>: 
3269
<li><a href="#Why%20is%20the%20output%20not%20printed%20when%20I%20source()%20a%20file%3f">Why is the output not printed when I source() a file?</a>: 
3265
<li><a href="#Why%20does%20outer()%20behave%20strangely%20with%20my%20function%3f">Why does outer() behave strangely with my function?</a>: 
3270
<li><a href="#Why%20does%20outer()%20behave%20strangely%20with%20my%20function%3f">Why does outer() behave strangely with my function?</a>: 
3266
<li><a href="#Why%20does%20the%20output%20from%20anova()%20depend%20on%20the%20order%20of%20factors%20in%20the%20model%3f">Why does the output from anova() depend on the order of factors in the model?</a>: 
3271
<li><a href="#Why%20does%20the%20output%20from%20anova()%20depend%20on%20the%20order%20of%20factors%20in%20the%20model%3f">Why does the output from anova() depend on the order of factors in the model?</a>: 
3267
<li><a href="#How%20do%20I%20produce%20PNG%20graphics%20in%20batch%20mode%3f">How do I produce PNG graphics in batch mode?</a>: 
3272
<li><a href="#How%20do%20I%20produce%20PNG%20graphics%20in%20batch%20mode%3f">How do I produce PNG graphics in batch mode?</a>: 
3268
<li><a href="#How%20can%20I%20get%20command%20line%20editing%20to%20work%3f">How can I get command line editing to work?</a>: 
3273
<li><a href="#How%20can%20I%20get%20command%20line%20editing%20to%20work%3f">How can I get command line editing to work?</a>: 
3269
<li><a href="#How%20can%20I%20turn%20a%20string%20into%20a%20variable%3f">How can I turn a string into a variable?</a>: 
3274
<li><a href="#How%20can%20I%20turn%20a%20string%20into%20a%20variable%3f">How can I turn a string into a variable?</a>: 
3270
<li><a href="#Why%20do%20lattice%2ftrellis%20graphics%20not%20work%3f">Why do lattice/trellis graphics not work?</a>: 
3275
<li><a href="#Why%20do%20lattice%2ftrellis%20graphics%20not%20work%3f">Why do lattice/trellis graphics not work?</a>: 
3271
<li><a href="#How%20can%20I%20sort%20the%20rows%20of%20a%20data%20frame%3f">How can I sort the rows of a data frame?</a>: 
3276
<li><a href="#How%20can%20I%20sort%20the%20rows%20of%20a%20data%20frame%3f">How can I sort the rows of a data frame?</a>: 
3272
</ul>
3277
</ul>
3273
 
3278
 
3274
<div class="node">
3279
<div class="node">
3275
<p><hr>
3280
<p><hr>
3276
Node:&nbsp;<a name="Why%20does%20R%20run%20out%20of%20memory%3f">Why does R run out of memory?</a>,
3281
Node:&nbsp;<a name="Why%20does%20R%20run%20out%20of%20memory%3f">Why does R run out of memory?</a>,
3277
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20does%20sourcing%20a%20correct%20file%20fail%3f">Why does sourcing a correct file fail?</a>,
3282
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20does%20sourcing%20a%20correct%20file%20fail%3f">Why does sourcing a correct file fail?</a>,
3278
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Miscellanea">R Miscellanea</a>,
3283
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Miscellanea">R Miscellanea</a>,
3279
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3284
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3280
<br>
3285
<br>
3281
</div>
3286
</div>
3282
 
3287
 
3283
<h3 class="section">7.1 Why does R run out of memory?</h3>
3288
<h3 class="section">7.1 Why does R run out of memory?</h3>
3284
 
3289
 
3285
<p>Versions of R prior to 1.2.0 used a <em>static</em> memory model.  At
3290
<p>Versions of R prior to 1.2.0 used a <em>static</em> memory model.  At
3286
startup, R asked the operating system to reserve a fixed amount of
3291
startup, R asked the operating system to reserve a fixed amount of
3287
memory for it.  The size of this chunk could not be changed
3292
memory for it.  The size of this chunk could not be changed
3288
subsequently.  Hence, it could happen that not enough memory was
3293
subsequently.  Hence, it could happen that not enough memory was
3289
allocated, e.g., when trying to read large data sets into R.  In such
3294
allocated, e.g., when trying to read large data sets into R.  In such
3290
cases, it was necessary to restart R with more memory available, as
3295
cases, it was necessary to restart R with more memory available, as
3291
controlled by the command line options <code>--nsize</code> and
3296
controlled by the command line options <code>--nsize</code> and
3292
<code>--vsize</code>.
3297
<code>--vsize</code>.
3293
 
3298
 
3294
   <p>R version 1.2.0 introduces a new "generational" garbage collector,
3299
   <p>R version 1.2.0 introduces a new "generational" garbage collector,
3295
which will increase the memory available to R as needed.  Hence, user
3300
which will increase the memory available to R as needed.  Hence, user
3296
intervention is no longer necessary for ensuring that enough memory is
3301
intervention is no longer necessary for ensuring that enough memory is
3297
available.
3302
available.
3298
 
3303
 
3299
   <p>The new garbage collector does not move objects in memory, meaning that
3304
   <p>The new garbage collector does not move objects in memory, meaning that
3300
it is possible for the free memory to become fragmented so that large
3305
it is possible for the free memory to become fragmented so that large
3301
objects cannot be allocated even when there is apparently enough memory
3306
objects cannot be allocated even when there is apparently enough memory
3302
for them.
3307
for them.
3303
 
3308
 
3304
<div class="node">
3309
<div class="node">
3305
<p><hr>
3310
<p><hr>
3306
Node:&nbsp;<a name="Why%20does%20sourcing%20a%20correct%20file%20fail%3f">Why does sourcing a correct file fail?</a>,
3311
Node:&nbsp;<a name="Why%20does%20sourcing%20a%20correct%20file%20fail%3f">Why does sourcing a correct file fail?</a>,
3307
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20set%20components%20of%20a%20list%20to%20NULL%3f">How can I set components of a list to NULL?</a>,
3312
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20set%20components%20of%20a%20list%20to%20NULL%3f">How can I set components of a list to NULL?</a>,
3308
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20does%20R%20run%20out%20of%20memory%3f">Why does R run out of memory?</a>,
3313
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20does%20R%20run%20out%20of%20memory%3f">Why does R run out of memory?</a>,
3309
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3314
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3310
<br>
3315
<br>
3311
</div>
3316
</div>
3312
 
3317
 
3313
<h3 class="section">7.2 Why does sourcing a correct file fail?</h3>
3318
<h3 class="section">7.2 Why does sourcing a correct file fail?</h3>
3314
 
3319
 
3315
<p>Versions of R prior to 1.2.1 may have had problems parsing files not
3320
<p>Versions of R prior to 1.2.1 may have had problems parsing files not
3316
ending in a newline.  Earlier R versions had a similar problem when
3321
ending in a newline.  Earlier R versions had a similar problem when
3317
reading in data files.  This should no longer happen.
3322
reading in data files.  This should no longer happen.
3318
 
3323
 
3319
<div class="node">
3324
<div class="node">
3320
<p><hr>
3325
<p><hr>
3321
Node:&nbsp;<a name="How%20can%20I%20set%20components%20of%20a%20list%20to%20NULL%3f">How can I set components of a list to NULL?</a>,
3326
Node:&nbsp;<a name="How%20can%20I%20set%20components%20of%20a%20list%20to%20NULL%3f">How can I set components of a list to NULL?</a>,
3322
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20save%20my%20workspace%3f">How can I save my workspace?</a>,
3327
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20save%20my%20workspace%3f">How can I save my workspace?</a>,
3323
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20does%20sourcing%20a%20correct%20file%20fail%3f">Why does sourcing a correct file fail?</a>,
3328
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20does%20sourcing%20a%20correct%20file%20fail%3f">Why does sourcing a correct file fail?</a>,
3324
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3329
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3325
<br>
3330
<br>
3326
</div>
3331
</div>
3327
 
3332
 
3328
<h3 class="section">7.3 How can I set components of a list to NULL?</h3>
3333
<h3 class="section">7.3 How can I set components of a list to NULL?</h3>
3329
 
3334
 
3330
<p>You can use
3335
<p>You can use
3331
 
3336
 
3332
<pre class="example">     x[i] &lt;- list(NULL)
3337
<pre class="example">     x[i] &lt;- list(NULL)
3333
     </pre>
3338
     </pre>
3334
 
3339
 
3335
<p>to set component <code>i</code> of the list <code>x</code> to <code>NULL</code>, similarly
3340
<p>to set component <code>i</code> of the list <code>x</code> to <code>NULL</code>, similarly
3336
for named components.  Do not set <code>x[i]</code> or <code>x[[i]]</code> to
3341
for named components.  Do not set <code>x[i]</code> or <code>x[[i]]</code> to
3337
<code>NULL</code>, because this will remove the corresponding component from
3342
<code>NULL</code>, because this will remove the corresponding component from
3338
the list.
3343
the list.
3339
 
3344
 
3340
   <p>For dropping the row names of a matrix <code>x</code>, it may be easier to use
3345
   <p>For dropping the row names of a matrix <code>x</code>, it may be easier to use
3341
<code>rownames(x) &lt;- NULL</code>, similarly for column names.
3346
<code>rownames(x) &lt;- NULL</code>, similarly for column names.
3342
 
3347
 
3343
<div class="node">
3348
<div class="node">
3344
<p><hr>
3349
<p><hr>
3345
Node:&nbsp;<a name="How%20can%20I%20save%20my%20workspace%3f">How can I save my workspace?</a>,
3350
Node:&nbsp;<a name="How%20can%20I%20save%20my%20workspace%3f">How can I save my workspace?</a>,
3346
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20clean%20up%20my%20workspace%3f">How can I clean up my workspace?</a>,
3351
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20clean%20up%20my%20workspace%3f">How can I clean up my workspace?</a>,
3347
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20set%20components%20of%20a%20list%20to%20NULL%3f">How can I set components of a list to NULL?</a>,
3352
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20set%20components%20of%20a%20list%20to%20NULL%3f">How can I set components of a list to NULL?</a>,
3348
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3353
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3349
<br>
3354
<br>
3350
</div>
3355
</div>
3351
 
3356
 
3352
<h3 class="section">7.4 How can I save my workspace?</h3>
3357
<h3 class="section">7.4 How can I save my workspace?</h3>
3353
 
3358
 
3354
<p><code>save.image()</code> saves the objects in the user's <code>.GlobalEnv</code> to
3359
<p><code>save.image()</code> saves the objects in the user's <code>.GlobalEnv</code> to
3355
the file <code>.RData</code> in the R startup directory.  (This is also what
3360
the file <code>.RData</code> in the R startup directory.  (This is also what
3356
happens after <kbd>q("yes")</kbd>.)  Using <code>save.image(</code><var>file</var><code>)</code> one
3361
happens after <kbd>q("yes")</kbd>.)  Using <code>save.image(</code><var>file</var><code>)</code> one
3357
can save the image under a different name.
3362
can save the image under a different name.
3358
 
3363
 
3359
<div class="node">
3364
<div class="node">
3360
<p><hr>
3365
<p><hr>
3361
Node:&nbsp;<a name="How%20can%20I%20clean%20up%20my%20workspace%3f">How can I clean up my workspace?</a>,
3366
Node:&nbsp;<a name="How%20can%20I%20clean%20up%20my%20workspace%3f">How can I clean up my workspace?</a>,
3362
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20get%20eval()%20and%20D()%20to%20work%3f">How can I get eval() and D() to work?</a>,
3367
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20get%20eval()%20and%20D()%20to%20work%3f">How can I get eval() and D() to work?</a>,
3363
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20save%20my%20workspace%3f">How can I save my workspace?</a>,
3368
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20save%20my%20workspace%3f">How can I save my workspace?</a>,
3364
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3369
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3365
<br>
3370
<br>
3366
</div>
3371
</div>
3367
 
3372
 
3368
<h3 class="section">7.5 How can I clean up my workspace?</h3>
3373
<h3 class="section">7.5 How can I clean up my workspace?</h3>
3369
 
3374
 
3370
<p>To remove all objects in the currently active environment (typically
3375
<p>To remove all objects in the currently active environment (typically
3371
<code>.GlobalEnv</code>), you can do
3376
<code>.GlobalEnv</code>), you can do
3372
 
3377
 
3373
<pre class="example">     rm(list = ls(all = TRUE))
3378
<pre class="example">     rm(list = ls(all = TRUE))
3374
     </pre>
3379
     </pre>
3375
 
3380
 
3376
<p>(Without <code>all = TRUE</code>, only the objects with names not starting
3381
<p>(Without <code>all = TRUE</code>, only the objects with names not starting
3377
with a <code>.</code> are removed.)
3382
with a <code>.</code> are removed.)
3378
 
3383
 
3379
<div class="node">
3384
<div class="node">
3380
<p><hr>
3385
<p><hr>
3381
Node:&nbsp;<a name="How%20can%20I%20get%20eval()%20and%20D()%20to%20work%3f">How can I get eval() and D() to work?</a>,
3386
Node:&nbsp;<a name="How%20can%20I%20get%20eval()%20and%20D()%20to%20work%3f">How can I get eval() and D() to work?</a>,
3382
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20do%20my%20matrices%20lose%20dimensions%3f">Why do my matrices lose dimensions?</a>,
3387
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20do%20my%20matrices%20lose%20dimensions%3f">Why do my matrices lose dimensions?</a>,
3383
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20clean%20up%20my%20workspace%3f">How can I clean up my workspace?</a>,
3388
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20clean%20up%20my%20workspace%3f">How can I clean up my workspace?</a>,
3384
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3389
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3385
<br>
3390
<br>
3386
</div>
3391
</div>
3387
 
3392
 
3388
<h3 class="section">7.6 How can I get eval() and D() to work?</h3>
3393
<h3 class="section">7.6 How can I get eval() and D() to work?</h3>
3389
 
3394
 
3390
<p>Strange things will happen if you use <code>eval(print(x), envir = e)</code>
3395
<p>Strange things will happen if you use <code>eval(print(x), envir = e)</code>
3391
or <code>D(x^2, "x")</code>.  The first one will either tell you that
3396
or <code>D(x^2, "x")</code>.  The first one will either tell you that
3392
"<code>x</code>" is not found, or print the value of the wrong <code>x</code>. 
3397
"<code>x</code>" is not found, or print the value of the wrong <code>x</code>. 
3393
The other one will likely return zero if <code>x</code> exists, and an error
3398
The other one will likely return zero if <code>x</code> exists, and an error
3394
otherwise.
3399
otherwise.
3395
 
3400
 
3396
   <p>This is because in both cases, the first argument is evaluated in the
3401
   <p>This is because in both cases, the first argument is evaluated in the
3397
calling environment first.  The result (which should be an object of
3402
calling environment first.  The result (which should be an object of
3398
mode <code>"expression"</code> or <code>"call"</code>) is then evaluated or
3403
mode <code>"expression"</code> or <code>"call"</code>) is then evaluated or
3399
differentiated.  What you (most likely) really want is obtained by
3404
differentiated.  What you (most likely) really want is obtained by
3400
"quoting" the first argument upon surrounding it with
3405
"quoting" the first argument upon surrounding it with
3401
<code>expression()</code>.  For example,
3406
<code>expression()</code>.  For example,
3402
 
3407
 
3403
<pre class="example">     R&gt; D(expression(x^2), "x")
3408
<pre class="example">     R&gt; D(expression(x^2), "x")
3404
     2 * x
3409
     2 * x
3405
     </pre>
3410
     </pre>
3406
 
3411
 
3407
   <p>Although this behavior may initially seem to be rather strange, is
3412
   <p>Although this behavior may initially seem to be rather strange, is
3408
perfectly logical.  The "intuitive" behavior could easily be
3413
perfectly logical.  The "intuitive" behavior could easily be
3409
implemented, but problems would arise whenever the expression is
3414
implemented, but problems would arise whenever the expression is
3410
contained in a variable, passed as a parameter, or is the result of a
3415
contained in a variable, passed as a parameter, or is the result of a
3411
function call.  Consider for instance the semantics in cases like
3416
function call.  Consider for instance the semantics in cases like
3412
 
3417
 
3413
<pre class="example">     D2 &lt;- function(e, n) D(D(e, n), n)
3418
<pre class="example">     D2 &lt;- function(e, n) D(D(e, n), n)
3414
     </pre>
3419
     </pre>
3415
 
3420
 
3416
<p>or
3421
<p>or
3417
 
3422
 
3418
<pre class="example">     g &lt;- function(y) eval(substitute(y), sys.frame(sys.parent(n = 2)))
3423
<pre class="example">     g &lt;- function(y) eval(substitute(y), sys.frame(sys.parent(n = 2)))
3419
     g(a * b)
3424
     g(a * b)
3420
     </pre>
3425
     </pre>
3421
 
3426
 
3422
   <p>See the help page for <code>deriv()</code> for more examples.
3427
   <p>See the help page for <code>deriv()</code> for more examples.
3423
 
3428
 
3424
<div class="node">
3429
<div class="node">
3425
<p><hr>
3430
<p><hr>
3426
Node:&nbsp;<a name="Why%20do%20my%20matrices%20lose%20dimensions%3f">Why do my matrices lose dimensions?</a>,
3431
Node:&nbsp;<a name="Why%20do%20my%20matrices%20lose%20dimensions%3f">Why do my matrices lose dimensions?</a>,
3427
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20does%20autoloading%20work%3f">How does autoloading work?</a>,
3432
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20does%20autoloading%20work%3f">How does autoloading work?</a>,
3428
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20get%20eval()%20and%20D()%20to%20work%3f">How can I get eval() and D() to work?</a>,
3433
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20get%20eval()%20and%20D()%20to%20work%3f">How can I get eval() and D() to work?</a>,
3429
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3434
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3430
<br>
3435
<br>
3431
</div>
3436
</div>
3432
 
3437
 
3433
<h3 class="section">7.7 Why do my matrices lose dimensions?</h3>
3438
<h3 class="section">7.7 Why do my matrices lose dimensions?</h3>
3434
 
3439
 
3435
<p>When a matrix with a single row or column is created by a subscripting
3440
<p>When a matrix with a single row or column is created by a subscripting
3436
operation, e.g., <code>row &lt;- mat[2, ]</code>, it is by default turned into a
3441
operation, e.g., <code>row &lt;- mat[2, ]</code>, it is by default turned into a
3437
vector.  In a similar way if an array with dimension, say, 2&nbsp;x&nbsp;3&nbsp;x&nbsp;1&nbsp;x&nbsp;4 is created by subscripting it will be coerced into a 2&nbsp;x&nbsp;3&nbsp;x&nbsp;4
3442
vector.  In a similar way if an array with dimension, say, 2&nbsp;x&nbsp;3&nbsp;x&nbsp;1&nbsp;x&nbsp;4 is created by subscripting it will be coerced into a 2&nbsp;x&nbsp;3&nbsp;x&nbsp;4
3438
array, losing the unnecessary dimension.  After much discussion this has
3443
array, losing the unnecessary dimension.  After much discussion this has
3439
been determined to be a <em>feature</em>.
3444
been determined to be a <em>feature</em>.
3440
 
3445
 
3441
   <p>To prevent this happening, add the option <code>drop = FALSE</code> to the
3446
   <p>To prevent this happening, add the option <code>drop = FALSE</code> to the
3442
subscripting.  For example,
3447
subscripting.  For example,
3443
 
3448
 
3444
<pre class="example">     rowmatrix &lt;- mat[2, , drop = FALSE]  # creates a row matrix
3449
<pre class="example">     rowmatrix &lt;- mat[2, , drop = FALSE]  # creates a row matrix
3445
     colmatrix &lt;- mat[, 2, drop = FALSE]  # creates a column matrix
3450
     colmatrix &lt;- mat[, 2, drop = FALSE]  # creates a column matrix
3446
     a &lt;- b[1, 1, 1, drop = FALSE]        # creates a 1 x 1 x 1 array
3451
     a &lt;- b[1, 1, 1, drop = FALSE]        # creates a 1 x 1 x 1 array
3447
     </pre>
3452
     </pre>
3448
 
3453
 
3449
   <p>The <code>drop = FALSE</code> option should be used defensively when
3454
   <p>The <code>drop = FALSE</code> option should be used defensively when
3450
programming.  For example, the statement
3455
programming.  For example, the statement
3451
 
3456
 
3452
<pre class="example">     somerows &lt;- mat[index, ]
3457
<pre class="example">     somerows &lt;- mat[index, ]
3453
     </pre>
3458
     </pre>
3454
 
3459
 
3455
<p>will return a vector rather than a matrix if <code>index</code> happens to
3460
<p>will return a vector rather than a matrix if <code>index</code> happens to
3456
have length 1, causing errors later in the code.  It should probably be
3461
have length 1, causing errors later in the code.  It should probably be
3457
rewritten as
3462
rewritten as
3458
 
3463
 
3459
<pre class="example">     somerows &lt;- mat[index, , drop = FALSE]
3464
<pre class="example">     somerows &lt;- mat[index, , drop = FALSE]
3460
     </pre>
3465
     </pre>
3461
 
3466
 
3462
<div class="node">
3467
<div class="node">
3463
<p><hr>
3468
<p><hr>
3464
Node:&nbsp;<a name="How%20does%20autoloading%20work%3f">How does autoloading work?</a>,
3469
Node:&nbsp;<a name="How%20does%20autoloading%20work%3f">How does autoloading work?</a>,
3465
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20should%20I%20set%20options%3f">How should I set options?</a>,
3470
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20should%20I%20set%20options%3f">How should I set options?</a>,
3466
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20do%20my%20matrices%20lose%20dimensions%3f">Why do my matrices lose dimensions?</a>,
3471
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20do%20my%20matrices%20lose%20dimensions%3f">Why do my matrices lose dimensions?</a>,
3467
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3472
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3468
<br>
3473
<br>
3469
</div>
3474
</div>
3470
 
3475
 
3471
<h3 class="section">7.8 How does autoloading work?</h3>
3476
<h3 class="section">7.8 How does autoloading work?</h3>
3472
 
3477
 
3473
<p>R has a special environment called <code>.AutoloadEnv</code>.  Using
3478
<p>R has a special environment called <code>.AutoloadEnv</code>.  Using
3474
<kbd>autoload(</kbd><var>name</var><kbd>, </kbd><var>pkg</var><kbd>)</kbd>, where <var>name</var> and
3479
<kbd>autoload(</kbd><var>name</var><kbd>, </kbd><var>pkg</var><kbd>)</kbd>, where <var>name</var> and
3475
<var>pkg</var> are strings giving the names of an object and the package
3480
<var>pkg</var> are strings giving the names of an object and the package
3476
containing it, stores some information in this environment.  When R
3481
containing it, stores some information in this environment.  When R
3477
tries to evaluate <var>name</var>, it loads the corresponding package
3482
tries to evaluate <var>name</var>, it loads the corresponding package
3478
<var>pkg</var> and reevaluates <var>name</var> in the new package's
3483
<var>pkg</var> and reevaluates <var>name</var> in the new package's
3479
environment.
3484
environment.
3480
 
3485
 
3481
   <p>Using this mechanism makes R behave as if the package was loaded, but
3486
   <p>Using this mechanism makes R behave as if the package was loaded, but
3482
does not occupy memory (yet).
3487
does not occupy memory (yet).
3483
 
3488
 
3484
   <p>See the help page for <code>autoload()</code> for a very nice example.
3489
   <p>See the help page for <code>autoload()</code> for a very nice example.
3485
 
3490
 
3486
<div class="node">
3491
<div class="node">
3487
<p><hr>
3492
<p><hr>
3488
Node:&nbsp;<a name="How%20should%20I%20set%20options%3f">How should I set options?</a>,
3493
Node:&nbsp;<a name="How%20should%20I%20set%20options%3f">How should I set options?</a>,
3489
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20do%20file%20names%20work%20in%20Windows%3f">How do file names work in Windows?</a>,
3494
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20do%20file%20names%20work%20in%20Windows%3f">How do file names work in Windows?</a>,
3490
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20does%20autoloading%20work%3f">How does autoloading work?</a>,
3495
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20does%20autoloading%20work%3f">How does autoloading work?</a>,
3491
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3496
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3492
<br>
3497
<br>
3493
</div>
3498
</div>
3494
 
3499
 
3495
<h3 class="section">7.9 How should I set options?</h3>
3500
<h3 class="section">7.9 How should I set options?</h3>
3496
 
3501
 
3497
<p>The function <code>options()</code> allows setting and examining a variety of
3502
<p>The function <code>options()</code> allows setting and examining a variety of
3498
global "options" which affect the way in which R computes and displays
3503
global "options" which affect the way in which R computes and displays
3499
its results.  The variable <code>.Options</code> holds the current values of
3504
its results.  The variable <code>.Options</code> holds the current values of
3500
these options, but should never directly be assigned to unless you want
3505
these options, but should never directly be assigned to unless you want
3501
to drive yourself crazy--simply pretend that it is a "read-only"
3506
to drive yourself crazy--simply pretend that it is a "read-only"
3502
variable.
3507
variable.
3503
 
3508
 
3504
   <p>For example, given
3509
   <p>For example, given
3505
 
3510
 
3506
<pre class="example">     test1 &lt;- function(x = pi, dig = 3) {
3511
<pre class="example">     test1 &lt;- function(x = pi, dig = 3) {
3507
       oo &lt;- options(digits = dig); on.exit(options(oo));
3512
       oo &lt;- options(digits = dig); on.exit(options(oo));
3508
       cat(.Options$digits, x, "\n")
3513
       cat(.Options$digits, x, "\n")
3509
     }
3514
     }
3510
     test2 &lt;- function(x = pi, dig = 3) {
3515
     test2 &lt;- function(x = pi, dig = 3) {
3511
       .Options$digits &lt;- dig
3516
       .Options$digits &lt;- dig
3512
       cat(.Options$digits, x, "\n")
3517
       cat(.Options$digits, x, "\n")
3513
     }
3518
     }
3514
     </pre>
3519
     </pre>
3515
 
3520
 
3516
<p>we obtain:
3521
<p>we obtain:
3517
 
3522
 
3518
<pre class="example">     R&gt; test1()
3523
<pre class="example">     R&gt; test1()
3519
     3 3.14
3524
     3 3.14
3520
     R&gt; test2()
3525
     R&gt; test2()
3521
     3 3.141593
3526
     3 3.141593
3522
     </pre>
3527
     </pre>
3523
 
3528
 
3524
   <p>What is really used is the <em>global</em> value of <code>.Options</code>, and
3529
   <p>What is really used is the <em>global</em> value of <code>.Options</code>, and
3525
using <kbd>options(OPT = VAL)</kbd> correctly updates it.  Local copies of
3530
using <kbd>options(OPT = VAL)</kbd> correctly updates it.  Local copies of
3526
<code>.Options</code>, either in <code>.GlobalEnv</code> or in a function
3531
<code>.Options</code>, either in <code>.GlobalEnv</code> or in a function
3527
environment (frame), are just silently disregarded.
3532
environment (frame), are just silently disregarded.
3528
 
3533
 
3529
<div class="node">
3534
<div class="node">
3530
<p><hr>
3535
<p><hr>
3531
Node:&nbsp;<a name="How%20do%20file%20names%20work%20in%20Windows%3f">How do file names work in Windows?</a>,
3536
Node:&nbsp;<a name="How%20do%20file%20names%20work%20in%20Windows%3f">How do file names work in Windows?</a>,
3532
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20does%20plotting%20give%20a%20color%20allocation%20error%3f">Why does plotting give a color allocation error?</a>,
3537
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20does%20plotting%20give%20a%20color%20allocation%20error%3f">Why does plotting give a color allocation error?</a>,
3533
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20should%20I%20set%20options%3f">How should I set options?</a>,
3538
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20should%20I%20set%20options%3f">How should I set options?</a>,
3534
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3539
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3535
<br>
3540
<br>
3536
</div>
3541
</div>
3537
 
3542
 
3538
<h3 class="section">7.10 How do file names work in Windows?</h3>
3543
<h3 class="section">7.10 How do file names work in Windows?</h3>
3539
 
3544
 
3540
<p>As R uses C-style string handling, <code>\</code> is treated as an escape
3545
<p>As R uses C-style string handling, <code>\</code> is treated as an escape
3541
character, so that for example one can enter a newline as <code>\n</code>. 
3546
character, so that for example one can enter a newline as <code>\n</code>. 
3542
When you really need a <code>\</code>, you have to escape it with another
3547
When you really need a <code>\</code>, you have to escape it with another
3543
<code>\</code>.
3548
<code>\</code>.
3544
 
3549
 
3545
   <p>Thus, in filenames use something like <code>"c:\\data\\money.dat"</code>.  You
3550
   <p>Thus, in filenames use something like <code>"c:\\data\\money.dat"</code>.  You
3546
can also replace <code>\</code> by <code>/</code> (<code>"c:/data/money.dat"</code>).
3551
can also replace <code>\</code> by <code>/</code> (<code>"c:/data/money.dat"</code>).
3547
 
3552
 
3548
<div class="node">
3553
<div class="node">
3549
<p><hr>
3554
<p><hr>
3550
Node:&nbsp;<a name="Why%20does%20plotting%20give%20a%20color%20allocation%20error%3f">Why does plotting give a color allocation error?</a>,
3555
Node:&nbsp;<a name="Why%20does%20plotting%20give%20a%20color%20allocation%20error%3f">Why does plotting give a color allocation error?</a>,
3551
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20do%20I%20convert%20factors%20to%20numeric%3f">How do I convert factors to numeric?</a>,
3556
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20do%20I%20convert%20factors%20to%20numeric%3f">How do I convert factors to numeric?</a>,
3552
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20do%20file%20names%20work%20in%20Windows%3f">How do file names work in Windows?</a>,
3557
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20do%20file%20names%20work%20in%20Windows%3f">How do file names work in Windows?</a>,
3553
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3558
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3554
<br>
3559
<br>
3555
</div>
3560
</div>
3556
 
3561
 
3557
<h3 class="section">7.11 Why does plotting give a color allocation error?</h3>
3562
<h3 class="section">7.11 Why does plotting give a color allocation error?</h3>
3558
 
3563
 
3559
<p>Sometimes plotting, e.g., when running <code>demo("image")</code>, results in
3564
<p>Sometimes plotting, e.g., when running <code>demo("image")</code>, results in
3560
"Error: color allocation error".  This is an X problem, and only
3565
"Error: color allocation error".  This is an X problem, and only
3561
indirectly related to R.  It occurs when applications started prior to R
3566
indirectly related to R.  It occurs when applications started prior to R
3562
have used all the available colors.  (How many colors are available
3567
have used all the available colors.  (How many colors are available
3563
depends on the X configuration; sometimes only 256 colors can be used.)
3568
depends on the X configuration; sometimes only 256 colors can be used.)
3564
 
3569
 
3565
   <p>One application which is notorious for "eating" colors is Netscape. 
3570
   <p>One application which is notorious for "eating" colors is Netscape. 
3566
If the problem occurs when Netscape is running, try (re)starting it with
3571
If the problem occurs when Netscape is running, try (re)starting it with
3567
either the <code>-no-install</code> (to use the default colormap) or the
3572
either the <code>-no-install</code> (to use the default colormap) or the
3568
<code>-install</code> (to install a private colormap) option.
3573
<code>-install</code> (to install a private colormap) option.
3569
 
3574
 
3570
   <p>You could also set the <code>colortype</code> of <code>X11()</code> to
3575
   <p>You could also set the <code>colortype</code> of <code>X11()</code> to
3571
<code>"pseudo.cube"</code> rather than the default <code>"pseudo"</code>.  See the
3576
<code>"pseudo.cube"</code> rather than the default <code>"pseudo"</code>.  See the
3572
help page for <code>X11()</code> for more information.
3577
help page for <code>X11()</code> for more information.
3573
 
3578
 
3574
<div class="node">
3579
<div class="node">
3575
<p><hr>
3580
<p><hr>
3576
Node:&nbsp;<a name="How%20do%20I%20convert%20factors%20to%20numeric%3f">How do I convert factors to numeric?</a>,
3581
Node:&nbsp;<a name="How%20do%20I%20convert%20factors%20to%20numeric%3f">How do I convert factors to numeric?</a>,
3577
Next:&nbsp;<a rel="next" accesskey="n" href="#Are%20Trellis%20displays%20implemented%20in%20R%3f">Are Trellis displays implemented in R?</a>,
3582
Next:&nbsp;<a rel="next" accesskey="n" href="#Are%20Trellis%20displays%20implemented%20in%20R%3f">Are Trellis displays implemented in R?</a>,
3578
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20does%20plotting%20give%20a%20color%20allocation%20error%3f">Why does plotting give a color allocation error?</a>,
3583
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20does%20plotting%20give%20a%20color%20allocation%20error%3f">Why does plotting give a color allocation error?</a>,
3579
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3584
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3580
<br>
3585
<br>
3581
</div>
3586
</div>
3582
 
3587
 
3583
<h3 class="section">7.12 How do I convert factors to numeric?</h3>
3588
<h3 class="section">7.12 How do I convert factors to numeric?</h3>
3584
 
3589
 
3585
<p>It may happen that when reading numeric data into R (usually, when
3590
<p>It may happen that when reading numeric data into R (usually, when
3586
reading in a file), they come in as factors.  If <code>f</code> is such a
3591
reading in a file), they come in as factors.  If <code>f</code> is such a
3587
factor object, you can use
3592
factor object, you can use
3588
 
3593
 
3589
<pre class="example">     as.numeric(as.character(f))
3594
<pre class="example">     as.numeric(as.character(f))
3590
     </pre>
3595
     </pre>
3591
 
3596
 
3592
<p>to get the numbers back.  More efficient, but harder to remember, is
3597
<p>to get the numbers back.  More efficient, but harder to remember, is
3593
 
3598
 
3594
<pre class="example">     as.numeric(levels(f))[as.integer(f)]
3599
<pre class="example">     as.numeric(levels(f))[as.integer(f)]
3595
     </pre>
3600
     </pre>
3596
 
3601
 
3597
   <p>In any case, do not call <code>as.numeric()</code> or their likes directly for
3602
   <p>In any case, do not call <code>as.numeric()</code> or their likes directly for
3598
the task at hand (as <code>as.numeric()</code> or <code>unclass()</code> give the
3603
the task at hand (as <code>as.numeric()</code> or <code>unclass()</code> give the
3599
internal codes).
3604
internal codes).
3600
 
3605
 
3601
<div class="node">
3606
<div class="node">
3602
<p><hr>
3607
<p><hr>
3603
Node:&nbsp;<a name="Are%20Trellis%20displays%20implemented%20in%20R%3f">Are Trellis displays implemented in R?</a>,
3608
Node:&nbsp;<a name="Are%20Trellis%20displays%20implemented%20in%20R%3f">Are Trellis displays implemented in R?</a>,
3604
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20are%20the%20enclosing%20and%20parent%20environments%3f">What are the enclosing and parent environments?</a>,
3609
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20are%20the%20enclosing%20and%20parent%20environments%3f">What are the enclosing and parent environments?</a>,
3605
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20do%20I%20convert%20factors%20to%20numeric%3f">How do I convert factors to numeric?</a>,
3610
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20do%20I%20convert%20factors%20to%20numeric%3f">How do I convert factors to numeric?</a>,
3606
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3611
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3607
<br>
3612
<br>
3608
</div>
3613
</div>
3609
 
3614
 
3610
<h3 class="section">7.13 Are Trellis displays implemented in R?</h3>
3615
<h3 class="section">7.13 Are Trellis displays implemented in R?</h3>
3611
 
3616
 
3612
<p>The recommended package <strong>lattice</strong> (which is based on another
3617
<p>The recommended package <strong>lattice</strong> (which is based on another
3613
recommended package, <strong>grid</strong>) provides graphical functionality
3618
recommended package, <strong>grid</strong>) provides graphical functionality
3614
that is compatible with most Trellis commands.
3619
that is compatible with most Trellis commands.
3615
 
3620
 
3616
   <p>You could also look at <code>coplot()</code> and <code>dotchart()</code> which might
3621
   <p>You could also look at <code>coplot()</code> and <code>dotchart()</code> which might
3617
do at least some of what you want.  Note also that the R version of
3622
do at least some of what you want.  Note also that the R version of
3618
<code>pairs()</code> is fairly general and provides most of the functionality
3623
<code>pairs()</code> is fairly general and provides most of the functionality
3619
of <code>splom()</code>, and that R's default plot method has an argument
3624
of <code>splom()</code>, and that R's default plot method has an argument
3620
<code>asp</code> allowing to specify (and fix against device resizing) the
3625
<code>asp</code> allowing to specify (and fix against device resizing) the
3621
aspect ratio of the plot.
3626
aspect ratio of the plot.
3622
 
3627
 
3623
   <p>(Because the word "Trellis" has been claimed as a trademark we do not
3628
   <p>(Because the word "Trellis" has been claimed as a trademark we do not
3624
use it in R.  The name "lattice" has been chosen for the R
3629
use it in R.  The name "lattice" has been chosen for the R
3625
equivalent.)
3630
equivalent.)
3626
 
3631
 
3627
<div class="node">
3632
<div class="node">
3628
<p><hr>
3633
<p><hr>
3629
Node:&nbsp;<a name="What%20are%20the%20enclosing%20and%20parent%20environments%3f">What are the enclosing and parent environments?</a>,
3634
Node:&nbsp;<a name="What%20are%20the%20enclosing%20and%20parent%20environments%3f">What are the enclosing and parent environments?</a>,
3630
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20substitute%20into%20a%20plot%20label%3f">How can I substitute into a plot label?</a>,
3635
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20substitute%20into%20a%20plot%20label%3f">How can I substitute into a plot label?</a>,
3631
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Are%20Trellis%20displays%20implemented%20in%20R%3f">Are Trellis displays implemented in R?</a>,
3636
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Are%20Trellis%20displays%20implemented%20in%20R%3f">Are Trellis displays implemented in R?</a>,
3632
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3637
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3633
<br>
3638
<br>
3634
</div>
3639
</div>
3635
 
3640
 
3636
<h3 class="section">7.14 What are the enclosing and parent environments?</h3>
3641
<h3 class="section">7.14 What are the enclosing and parent environments?</h3>
3637
 
3642
 
3638
<p>Inside a function you may want to access variables in two additional
3643
<p>Inside a function you may want to access variables in two additional
3639
environments: the one that the function was defined in ("enclosing"),
3644
environments: the one that the function was defined in ("enclosing"),
3640
and the one it was invoked in ("parent").
3645
and the one it was invoked in ("parent").
3641
 
3646
 
3642
   <p>If you create a function at the command line or load it in a package its
3647
   <p>If you create a function at the command line or load it in a package its
3643
enclosing environment is the global workspace.  If you define a function
3648
enclosing environment is the global workspace.  If you define a function
3644
<code>f()</code> inside another function <code>g()</code> its enclosing environment
3649
<code>f()</code> inside another function <code>g()</code> its enclosing environment
3645
is the environment inside <code>g()</code>.  The enclosing environment for a
3650
is the environment inside <code>g()</code>.  The enclosing environment for a
3646
function is fixed when the function is created.  You can find out the
3651
function is fixed when the function is created.  You can find out the
3647
enclosing environment for a function <code>f()</code> using
3652
enclosing environment for a function <code>f()</code> using
3648
<code>environment(f)</code>.
3653
<code>environment(f)</code>.
3649
 
3654
 
3650
   <p>The "parent" environment, on the other hand, is defined when you
3655
   <p>The "parent" environment, on the other hand, is defined when you
3651
invoke a function.  If you invoke <code>lm()</code> at the command line its
3656
invoke a function.  If you invoke <code>lm()</code> at the command line its
3652
parent environment is the global workspace, if you invoke it inside a
3657
parent environment is the global workspace, if you invoke it inside a
3653
function <code>f()</code> then its parent environment is the environment
3658
function <code>f()</code> then its parent environment is the environment
3654
inside <code>f()</code>.  You can find out the parent environment for an
3659
inside <code>f()</code>.  You can find out the parent environment for an
3655
invocation of a function by using <code>parent.frame()</code> or
3660
invocation of a function by using <code>parent.frame()</code> or
3656
<code>sys.frame(sys.parent())</code>.
3661
<code>sys.frame(sys.parent())</code>.
3657
 
3662
 
3658
   <p>So for most user-visible functions the enclosing environment will be the
3663
   <p>So for most user-visible functions the enclosing environment will be the
3659
global workspace, since that is where most functions are defined.  The
3664
global workspace, since that is where most functions are defined.  The
3660
parent environment will be wherever the function happens to be called
3665
parent environment will be wherever the function happens to be called
3661
from.  If a function <code>f()</code> is defined inside another function
3666
from.  If a function <code>f()</code> is defined inside another function
3662
<code>g()</code> it will probably be used inside <code>g()</code> as well, so its
3667
<code>g()</code> it will probably be used inside <code>g()</code> as well, so its
3663
parent environment and enclosing environment will probably be the same.
3668
parent environment and enclosing environment will probably be the same.
3664
 
3669
 
3665
   <p>Parent environments are important because things like model formulas
3670
   <p>Parent environments are important because things like model formulas
3666
need to be evaluated in the environment the function was called from,
3671
need to be evaluated in the environment the function was called from,
3667
since that's where all the variables will be available.  This relies on
3672
since that's where all the variables will be available.  This relies on
3668
the parent environment being potentially different with each invocation.
3673
the parent environment being potentially different with each invocation.
3669
 
3674
 
3670
   <p>Enclosing environments are important because a function can use
3675
   <p>Enclosing environments are important because a function can use
3671
variables in the enclosing environment to share information with other
3676
variables in the enclosing environment to share information with other
3672
functions or with other invocations of itself (see the section on
3677
functions or with other invocations of itself (see the section on
3673
lexical scoping).  This relies on the enclosing environment being the
3678
lexical scoping).  This relies on the enclosing environment being the
3674
same each time the function is invoked.
3679
same each time the function is invoked.
3675
 
3680
 
3676
   <p>Scoping <em>is</em> hard.  Looking at examples helps.  It is particularly
3681
   <p>Scoping <em>is</em> hard.  Looking at examples helps.  It is particularly
3677
instructive to look at examples that work differently in R and S and try
3682
instructive to look at examples that work differently in R and S and try
3678
to see why they differ.  One way to describe the scoping differences
3683
to see why they differ.  One way to describe the scoping differences
3679
between R and S is to say that in S the enclosing environment is
3684
between R and S is to say that in S the enclosing environment is
3680
<em>always</em> the global workspace, but in R the enclosing environment
3685
<em>always</em> the global workspace, but in R the enclosing environment
3681
is wherever the function was created.
3686
is wherever the function was created.
3682
 
3687
 
3683
<div class="node">
3688
<div class="node">
3684
<p><hr>
3689
<p><hr>
3685
Node:&nbsp;<a name="How%20can%20I%20substitute%20into%20a%20plot%20label%3f">How can I substitute into a plot label?</a>,
3690
Node:&nbsp;<a name="How%20can%20I%20substitute%20into%20a%20plot%20label%3f">How can I substitute into a plot label?</a>,
3686
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20are%20valid%20names%3f">What are valid names?</a>,
3691
Next:&nbsp;<a rel="next" accesskey="n" href="#What%20are%20valid%20names%3f">What are valid names?</a>,
3687
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20are%20the%20enclosing%20and%20parent%20environments%3f">What are the enclosing and parent environments?</a>,
3692
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20are%20the%20enclosing%20and%20parent%20environments%3f">What are the enclosing and parent environments?</a>,
3688
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3693
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3689
<br>
3694
<br>
3690
</div>
3695
</div>
3691
 
3696
 
3692
<h3 class="section">7.15 How can I substitute into a plot label?</h3>
3697
<h3 class="section">7.15 How can I substitute into a plot label?</h3>
3693
 
3698
 
3694
<p>Often, it is desired to use the value of an R object in a plot label,
3699
<p>Often, it is desired to use the value of an R object in a plot label,
3695
e.g., a title.  This is easily accomplished using <code>paste()</code> if the
3700
e.g., a title.  This is easily accomplished using <code>paste()</code> if the
3696
label is a simple character string, but not always obvious in case the
3701
label is a simple character string, but not always obvious in case the
3697
label is an expression (for refined mathematical annotation).  In such a
3702
label is an expression (for refined mathematical annotation).  In such a
3698
case, either use <code>parse()</code> on your pasted character string or use
3703
case, either use <code>parse()</code> on your pasted character string or use
3699
<code>substitute()</code> on an expression.  For example, if <code>ahat</code> is an
3704
<code>substitute()</code> on an expression.  For example, if <code>ahat</code> is an
3700
estimator of your parameter a of interest, use
3705
estimator of your parameter a of interest, use
3701
 
3706
 
3702
<pre class="example">     title(substitute(hat(a) == ahat, list(ahat = ahat)))
3707
<pre class="example">     title(substitute(hat(a) == ahat, list(ahat = ahat)))
3703
     </pre>
3708
     </pre>
3704
 
3709
 
3705
<p>(note that it is <code>==</code> and not <code>=</code>).  There are more worked
3710
<p>(note that it is <code>==</code> and not <code>=</code>).  There are more worked
3706
examples in the mailing list achives.
3711
examples in the mailing list achives.
3707
 
3712
 
3708
<div class="node">
3713
<div class="node">
3709
<p><hr>
3714
<p><hr>
3710
Node:&nbsp;<a name="What%20are%20valid%20names%3f">What are valid names?</a>,
3715
Node:&nbsp;<a name="What%20are%20valid%20names%3f">What are valid names?</a>,
3711
Next:&nbsp;<a rel="next" accesskey="n" href="#Are%20GAMs%20implemented%20in%20R%3f">Are GAMs implemented in R?</a>,
3716
Next:&nbsp;<a rel="next" accesskey="n" href="#Are%20GAMs%20implemented%20in%20R%3f">Are GAMs implemented in R?</a>,
3712
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20substitute%20into%20a%20plot%20label%3f">How can I substitute into a plot label?</a>,
3717
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20substitute%20into%20a%20plot%20label%3f">How can I substitute into a plot label?</a>,
3713
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3718
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3714
<br>
3719
<br>
3715
</div>
3720
</div>
3716
 
3721
 
3717
<h3 class="section">7.16 What are valid names?</h3>
3722
<h3 class="section">7.16 What are valid names?</h3>
3718
 
3723
 
3719
<p>When creating data frames using <code>data.frame()</code> or
3724
<p>When creating data frames using <code>data.frame()</code> or
3720
<code>read.table()</code>, R by default ensures that the variable names are
3725
<code>read.table()</code>, R by default ensures that the variable names are
3721
syntactically valid.  (The argument <code>check.names</code> to these
3726
syntactically valid.  (The argument <code>check.names</code> to these
3722
functions controls whether variable names are checked and adjusted by
3727
functions controls whether variable names are checked and adjusted by
3723
<code>make.names()</code> if needed.)
3728
<code>make.names()</code> if needed.)
3724
 
3729
 
3725
   <p>To understand what names are "valid", one needs to take into account
3730
   <p>To understand what names are "valid", one needs to take into account
3726
that the term "name" is used in several different (but related) ways
3731
that the term "name" is used in several different (but related) ways
3727
in the language:
3732
in the language:
3728
 
3733
 
3729
     <ol type=1 start=1>
3734
     <ol type=1 start=1>
3730
<li>A <em>syntactic name</em> is a string the parser interprets as this type
3735
<li>A <em>syntactic name</em> is a string the parser interprets as this type
3731
of expression.  It consists of letters, numbers, and the dot and (for
3736
of expression.  It consists of letters, numbers, and the dot and (for
3732
version of R at least 1.9.0) underscore characters, and starts with
3737
version of R at least 1.9.0) underscore characters, and starts with
3733
either a letter or a dot not followed by a number.  Reserved words are
3738
either a letter or a dot not followed by a number.  Reserved words are
3734
not syntactic names. 
3739
not syntactic names. 
3735
<li>An <em>object name</em> is a string associated with an object that is
3740
<li>An <em>object name</em> is a string associated with an object that is
3736
assigned in an expression either by having the object name on the left
3741
assigned in an expression either by having the object name on the left
3737
of an assignment operation or as an argument to the <code>assign()</code>
3742
of an assignment operation or as an argument to the <code>assign()</code>
3738
function.  It is usually a syntactic name as well, but can be any
3743
function.  It is usually a syntactic name as well, but can be any
3739
non-empty string if it is quoted (and it is always quoted in the call to
3744
non-empty string if it is quoted (and it is always quoted in the call to
3740
<code>assign()</code>).
3745
<code>assign()</code>).
3741
 
3746
 
3742
     <li>An <em>argument name</em> is what appears to the left of the equals sign
3747
     <li>An <em>argument name</em> is what appears to the left of the equals sign
3743
when supplying an argument in a function call (for example,
3748
when supplying an argument in a function call (for example,
3744
<code>f(trim=.5)</code>).  Argument names are also usually syntactic names,
3749
<code>f(trim=.5)</code>).  Argument names are also usually syntactic names,
3745
but again can be anything if they are quoted.
3750
but again can be anything if they are quoted.
3746
 
3751
 
3747
     <li>An <em>element name</em> is a string that identifies a piece of an object
3752
     <li>An <em>element name</em> is a string that identifies a piece of an object
3748
(a component of a list, for example.)  When it is used on the right of
3753
(a component of a list, for example.)  When it is used on the right of
3749
the <code>$</code> operator, it must be a syntactic name, or quoted. 
3754
the <code>$</code> operator, it must be a syntactic name, or quoted. 
3750
Otherwise, element names can be any strings.  (When an object is used as
3755
Otherwise, element names can be any strings.  (When an object is used as
3751
a database, as in a call to <code>eval()</code> or <code>attach()</code>, the
3756
a database, as in a call to <code>eval()</code> or <code>attach()</code>, the
3752
element names become object names.)
3757
element names become object names.)
3753
 
3758
 
3754
     <li>Finally, a <em>file name</em> is a string identifying a file in the
3759
     <li>Finally, a <em>file name</em> is a string identifying a file in the
3755
operating system for reading, writing, etc.  It really has nothing much
3760
operating system for reading, writing, etc.  It really has nothing much
3756
to do with names in the language, but it is traditional to call these
3761
to do with names in the language, but it is traditional to call these
3757
strings file "names".
3762
strings file "names".
3758
        </ol>
3763
        </ol>
3759
 
3764
 
3760
<div class="node">
3765
<div class="node">
3761
<p><hr>
3766
<p><hr>
3762
Node:&nbsp;<a name="Are%20GAMs%20implemented%20in%20R%3f">Are GAMs implemented in R?</a>,
3767
Node:&nbsp;<a name="Are%20GAMs%20implemented%20in%20R%3f">Are GAMs implemented in R?</a>,
3763
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20is%20the%20output%20not%20printed%20when%20I%20source()%20a%20file%3f">Why is the output not printed when I source() a file?</a>,
3768
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20is%20the%20output%20not%20printed%20when%20I%20source()%20a%20file%3f">Why is the output not printed when I source() a file?</a>,
3764
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20are%20valid%20names%3f">What are valid names?</a>,
3769
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20are%20valid%20names%3f">What are valid names?</a>,
3765
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3770
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3766
<br>
3771
<br>
3767
</div>
3772
</div>
3768
 
3773
 
3769
<h3 class="section">7.17 Are GAMs implemented in R?</h3>
3774
<h3 class="section">7.17 Are GAMs implemented in R?</h3>
3770
 
3775
 
3771
<p>There is a <code>gam()</code> function for Generalized Additive Models in
3776
<p>There is a <code>gam()</code> function for Generalized Additive Models in
3772
package <strong>mgcv</strong>, but it is not an exact clone of what is described
3777
package <strong>mgcv</strong>, but it is not an exact clone of what is described
3773
in the White Book (no <code>lo()</code> for example).  Package <strong>gss</strong>
3778
in the White Book (no <code>lo()</code> for example).  Package <strong>gss</strong>
3774
can fit spline-based GAMs too.  And if you can accept regression splines
3779
can fit spline-based GAMs too.  And if you can accept regression splines
3775
you can use <code>glm()</code>.  For gaussian GAMs you can use <code>bruto()</code>
3780
you can use <code>glm()</code>.  For gaussian GAMs you can use <code>bruto()</code>
3776
from package <strong>mda</strong>.
3781
from package <strong>mda</strong>.
3777
 
3782
 
3778
<div class="node">
3783
<div class="node">
3779
<p><hr>
3784
<p><hr>
3780
Node:&nbsp;<a name="Why%20is%20the%20output%20not%20printed%20when%20I%20source()%20a%20file%3f">Why is the output not printed when I source() a file?</a>,
3785
Node:&nbsp;<a name="Why%20is%20the%20output%20not%20printed%20when%20I%20source()%20a%20file%3f">Why is the output not printed when I source() a file?</a>,
3781
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20does%20outer()%20behave%20strangely%20with%20my%20function%3f">Why does outer() behave strangely with my function?</a>,
3786
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20does%20outer()%20behave%20strangely%20with%20my%20function%3f">Why does outer() behave strangely with my function?</a>,
3782
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Are%20GAMs%20implemented%20in%20R%3f">Are GAMs implemented in R?</a>,
3787
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Are%20GAMs%20implemented%20in%20R%3f">Are GAMs implemented in R?</a>,
3783
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3788
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3784
<br>
3789
<br>
3785
</div>
3790
</div>
3786
 
3791
 
3787
<h3 class="section">7.18 Why is the output not printed when I source() a file?</h3>
3792
<h3 class="section">7.18 Why is the output not printed when I source() a file?</h3>
3788
 
3793
 
3789
<p>Most R commands do not generate any output. The command
3794
<p>Most R commands do not generate any output. The command
3790
 
3795
 
3791
<pre class="example">     1+1
3796
<pre class="example">     1+1
3792
     </pre>
3797
     </pre>
3793
 
3798
 
3794
<p>computes the value 2 and returns it; the command
3799
<p>computes the value 2 and returns it; the command
3795
 
3800
 
3796
<pre class="example">     summary(glm(y~x+z, family=binomial))
3801
<pre class="example">     summary(glm(y~x+z, family=binomial))
3797
     </pre>
3802
     </pre>
3798
 
3803
 
3799
<p>fits a logistic regression model, computes some summary information and
3804
<p>fits a logistic regression model, computes some summary information and
3800
returns an object of class <code>"summary.glm"</code> (see <a href="#How%20should%20I%20write%20summary%20methods%3f">How should I write summary methods?</a>).
3805
returns an object of class <code>"summary.glm"</code> (see <a href="#How%20should%20I%20write%20summary%20methods%3f">How should I write summary methods?</a>).
3801
 
3806
 
3802
   <p>If you type <code>1+1</code> or <code>summary(glm(y~x+z, family=binomial))</code> at
3807
   <p>If you type <code>1+1</code> or <code>summary(glm(y~x+z, family=binomial))</code> at
3803
the command line the returned value is automatically printed (unless it
3808
the command line the returned value is automatically printed (unless it
3804
is <code>invisible()</code>), but in other circumstances, such as in a
3809
is <code>invisible()</code>), but in other circumstances, such as in a
3805
<code>source()</code>d file or inside a function it isn't printed unless you
3810
<code>source()</code>d file or inside a function it isn't printed unless you
3806
specifically print it.
3811
specifically print it.
3807
 
3812
 
3808
   <p>To print the value use
3813
   <p>To print the value use
3809
 
3814
 
3810
<pre class="example">     print(1+1)
3815
<pre class="example">     print(1+1)
3811
     </pre>
3816
     </pre>
3812
 
3817
 
3813
<p>or
3818
<p>or
3814
 
3819
 
3815
<pre class="example">     print(summary(glm(y~x+z, family=binomial)))
3820
<pre class="example">     print(summary(glm(y~x+z, family=binomial)))
3816
     </pre>
3821
     </pre>
3817
 
3822
 
3818
<p>instead, or use <code>source(</code><var>file</var><code>, echo=TRUE)</code>.
3823
<p>instead, or use <code>source(</code><var>file</var><code>, echo=TRUE)</code>.
3819
 
3824
 
3820
<div class="node">
3825
<div class="node">
3821
<p><hr>
3826
<p><hr>
3822
Node:&nbsp;<a name="Why%20does%20outer()%20behave%20strangely%20with%20my%20function%3f">Why does outer() behave strangely with my function?</a>,
3827
Node:&nbsp;<a name="Why%20does%20outer()%20behave%20strangely%20with%20my%20function%3f">Why does outer() behave strangely with my function?</a>,
3823
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20does%20the%20output%20from%20anova()%20depend%20on%20the%20order%20of%20factors%20in%20the%20model%3f">Why does the output from anova() depend on the order of factors in the model?</a>,
3828
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20does%20the%20output%20from%20anova()%20depend%20on%20the%20order%20of%20factors%20in%20the%20model%3f">Why does the output from anova() depend on the order of factors in the model?</a>,
3824
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20is%20the%20output%20not%20printed%20when%20I%20source()%20a%20file%3f">Why is the output not printed when I source() a file?</a>,
3829
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20is%20the%20output%20not%20printed%20when%20I%20source()%20a%20file%3f">Why is the output not printed when I source() a file?</a>,
3825
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3830
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3826
<br>
3831
<br>
3827
</div>
3832
</div>
3828
 
3833
 
3829
<h3 class="section">7.19 Why does outer() behave strangely with my function?</h3>
3834
<h3 class="section">7.19 Why does outer() behave strangely with my function?</h3>
3830
 
3835
 
3831
<p>As the help for <code>outer()</code> indicates, it does not work on arbitrary
3836
<p>As the help for <code>outer()</code> indicates, it does not work on arbitrary
3832
functions the way the <code>apply()</code> family does.  It requires functions
3837
functions the way the <code>apply()</code> family does.  It requires functions
3833
that are vectorized to work elementwise on arrays.  As you can see by
3838
that are vectorized to work elementwise on arrays.  As you can see by
3834
looking at the code, <code>outer(x, y, FUN)</code> creates two large vectors
3839
looking at the code, <code>outer(x, y, FUN)</code> creates two large vectors
3835
containing every possible combination of elements of <code>x</code> and
3840
containing every possible combination of elements of <code>x</code> and
3836
<code>y</code> and then passes this to <code>FUN</code> all at once.  Your function
3841
<code>y</code> and then passes this to <code>FUN</code> all at once.  Your function
3837
probably cannot handle two large vectors as parameters.
3842
probably cannot handle two large vectors as parameters.
3838
 
3843
 
3839
   <p>If you have a function that cannot handle two vectors but can handle two
3844
   <p>If you have a function that cannot handle two vectors but can handle two
3840
scalars, then you can still use <code>outer()</code> but you will need to wrap
3845
scalars, then you can still use <code>outer()</code> but you will need to wrap
3841
your function up first, to simulate vectorized behavior.  Suppose your
3846
your function up first, to simulate vectorized behavior.  Suppose your
3842
function is
3847
function is
3843
 
3848
 
3844
<pre class="example">     foo &lt;- function(x, y, happy) {
3849
<pre class="example">     foo &lt;- function(x, y, happy) {
3845
       stopifnot(length(x) == 1, length(y) == 1) # scalars only!
3850
       stopifnot(length(x) == 1, length(y) == 1) # scalars only!
3846
       (x + y) * happy
3851
       (x + y) * happy
3847
     }
3852
     }
3848
     </pre>
3853
     </pre>
3849
 
3854
 
3850
<p>If you define the general function
3855
<p>If you define the general function
3851
 
3856
 
3852
<pre class="example">     wrapper &lt;- function(x, y, my.fun, ...) {
3857
<pre class="example">     wrapper &lt;- function(x, y, my.fun, ...) {
3853
       sapply(seq(along = x), FUN = function(i) my.fun(x[i], y[i], ...))
3858
       sapply(seq(along = x), FUN = function(i) my.fun(x[i], y[i], ...))
3854
     }
3859
     }
3855
     </pre>
3860
     </pre>
3856
 
3861
 
3857
<p>then you can use <code>outer()</code> by writing, e.g.,
3862
<p>then you can use <code>outer()</code> by writing, e.g.,
3858
 
3863
 
3859
<pre class="example">     outer(1:4, 1:2, FUN = wrapper, my.fun = foo, happy = 10)
3864
<pre class="example">     outer(1:4, 1:2, FUN = wrapper, my.fun = foo, happy = 10)
3860
     </pre>
3865
     </pre>
3861
 
3866
 
3862
<div class="node">
3867
<div class="node">
3863
<p><hr>
3868
<p><hr>
3864
Node:&nbsp;<a name="Why%20does%20the%20output%20from%20anova()%20depend%20on%20the%20order%20of%20factors%20in%20the%20model%3f">Why does the output from anova() depend on the order of factors in the model?</a>,
3869
Node:&nbsp;<a name="Why%20does%20the%20output%20from%20anova()%20depend%20on%20the%20order%20of%20factors%20in%20the%20model%3f">Why does the output from anova() depend on the order of factors in the model?</a>,
3865
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20do%20I%20produce%20PNG%20graphics%20in%20batch%20mode%3f">How do I produce PNG graphics in batch mode?</a>,
3870
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20do%20I%20produce%20PNG%20graphics%20in%20batch%20mode%3f">How do I produce PNG graphics in batch mode?</a>,
3866
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20does%20outer()%20behave%20strangely%20with%20my%20function%3f">Why does outer() behave strangely with my function?</a>,
3871
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20does%20outer()%20behave%20strangely%20with%20my%20function%3f">Why does outer() behave strangely with my function?</a>,
3867
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3872
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3868
<br>
3873
<br>
3869
</div>
3874
</div>
3870
 
3875
 
3871
<h3 class="section">7.20 Why does the output from anova() depend on the order of factors in the model?</h3>
3876
<h3 class="section">7.20 Why does the output from anova() depend on the order of factors in the model?</h3>
3872
 
3877
 
3873
<p>In a model such as <code>~A+B+A:B</code>, R will report the difference in sums
3878
<p>In a model such as <code>~A+B+A:B</code>, R will report the difference in sums
3874
of squares between the models <code>~1</code>, <code>~A</code>, <code>~A+B</code> and
3879
of squares between the models <code>~1</code>, <code>~A</code>, <code>~A+B</code> and
3875
<code>~A+B+A:B</code>.  If the model were <code>~B+A+A:B</code>, R would report
3880
<code>~A+B+A:B</code>.  If the model were <code>~B+A+A:B</code>, R would report
3876
differences between <code>~1</code>, <code>~B</code>, <code>~A+B</code>, and
3881
differences between <code>~1</code>, <code>~B</code>, <code>~A+B</code>, and
3877
<code>~A+B+A:B</code> . In the first case the sum of squares for <code>A</code> is
3882
<code>~A+B+A:B</code> . In the first case the sum of squares for <code>A</code> is
3878
comparing <code>~1</code> and <code>~A</code>, in the second case it is comparing
3883
comparing <code>~1</code> and <code>~A</code>, in the second case it is comparing
3879
<code>~B</code> and <code>~B+A</code>.  In a non-orthogonal design (i.e., most
3884
<code>~B</code> and <code>~B+A</code>.  In a non-orthogonal design (i.e., most
3880
unbalanced designs) these comparisons are (conceptually and numerically)
3885
unbalanced designs) these comparisons are (conceptually and numerically)
3881
different.
3886
different.
3882
 
3887
 
3883
   <p>Some packages report instead the sums of squares based on comparing the
3888
   <p>Some packages report instead the sums of squares based on comparing the
3884
full model to the models with each factor removed one at a time (the
3889
full model to the models with each factor removed one at a time (the
3885
famous `Type III sums of squares' from SAS, for example).  These do not
3890
famous `Type III sums of squares' from SAS, for example).  These do not
3886
depend on the order of factors in the model.  The question of which set
3891
depend on the order of factors in the model.  The question of which set
3887
of sums of squares is the Right Thing provokes low-level holy wars on
3892
of sums of squares is the Right Thing provokes low-level holy wars on
3888
R-help from time to time.
3893
R-help from time to time.
3889
 
3894
 
3890
   <p>There is no need to be agitated about the particular sums of squares
3895
   <p>There is no need to be agitated about the particular sums of squares
3891
that R reports.  You can compute your favorite sums of squares quite
3896
that R reports.  You can compute your favorite sums of squares quite
3892
easily.  Any two models can be compared with <code>anova(</code><var>model1</var><code>,
3897
easily.  Any two models can be compared with <code>anova(</code><var>model1</var><code>,
3893
</code><var>model2</var><code>)</code>, and <code>drop1(</code><var>model1</var><code>)</code> will show the sums of
3898
</code><var>model2</var><code>)</code>, and <code>drop1(</code><var>model1</var><code>)</code> will show the sums of
3894
squares resulting from dropping single terms.
3899
squares resulting from dropping single terms.
3895
 
3900
 
3896
<div class="node">
3901
<div class="node">
3897
<p><hr>
3902
<p><hr>
3898
Node:&nbsp;<a name="How%20do%20I%20produce%20PNG%20graphics%20in%20batch%20mode%3f">How do I produce PNG graphics in batch mode?</a>,
3903
Node:&nbsp;<a name="How%20do%20I%20produce%20PNG%20graphics%20in%20batch%20mode%3f">How do I produce PNG graphics in batch mode?</a>,
3899
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20get%20command%20line%20editing%20to%20work%3f">How can I get command line editing to work?</a>,
3904
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20get%20command%20line%20editing%20to%20work%3f">How can I get command line editing to work?</a>,
3900
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20does%20the%20output%20from%20anova()%20depend%20on%20the%20order%20of%20factors%20in%20the%20model%3f">Why does the output from anova() depend on the order of factors in the model?</a>,
3905
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20does%20the%20output%20from%20anova()%20depend%20on%20the%20order%20of%20factors%20in%20the%20model%3f">Why does the output from anova() depend on the order of factors in the model?</a>,
3901
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3906
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3902
<br>
3907
<br>
3903
</div>
3908
</div>
3904
 
3909
 
3905
<h3 class="section">7.21 How do I produce PNG graphics in batch mode?</h3>
3910
<h3 class="section">7.21 How do I produce PNG graphics in batch mode?</h3>
3906
 
3911
 
3907
<p>Under Unix, the <code>png()</code> device uses the X11 driver, which is a
3912
<p>Under Unix, the <code>png()</code> device uses the X11 driver, which is a
3908
problem in batch mode or for remote operation.  If you have Ghostscript
3913
problem in batch mode or for remote operation.  If you have Ghostscript
3909
you can use <code>bitmap()</code>, which produces a PostScript file then
3914
you can use <code>bitmap()</code>, which produces a PostScript file then
3910
converts it to any bitmap format supported by ghostscript.  On some
3915
converts it to any bitmap format supported by ghostscript.  On some
3911
installations this produces ugly output, on others it is perfectly
3916
installations this produces ugly output, on others it is perfectly
3912
satisfactory.  In theory one could also use Xvfb, which provides an X
3917
satisfactory.  In theory one could also use Xvfb, which provides an X
3913
server with no display.
3918
server with no display.
3914
 
3919
 
3915
<div class="node">
3920
<div class="node">
3916
<p><hr>
3921
<p><hr>
3917
Node:&nbsp;<a name="How%20can%20I%20get%20command%20line%20editing%20to%20work%3f">How can I get command line editing to work?</a>,
3922
Node:&nbsp;<a name="How%20can%20I%20get%20command%20line%20editing%20to%20work%3f">How can I get command line editing to work?</a>,
3918
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20turn%20a%20string%20into%20a%20variable%3f">How can I turn a string into a variable?</a>,
3923
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20turn%20a%20string%20into%20a%20variable%3f">How can I turn a string into a variable?</a>,
3919
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20do%20I%20produce%20PNG%20graphics%20in%20batch%20mode%3f">How do I produce PNG graphics in batch mode?</a>,
3924
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20do%20I%20produce%20PNG%20graphics%20in%20batch%20mode%3f">How do I produce PNG graphics in batch mode?</a>,
3920
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3925
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3921
<br>
3926
<br>
3922
</div>
3927
</div>
3923
 
3928
 
3924
<h3 class="section">7.22 How can I get command line editing to work?</h3>
3929
<h3 class="section">7.22 How can I get command line editing to work?</h3>
3925
 
3930
 
3926
<p>The Unix command-line interface to R can only provide the inbuilt
3931
<p>The Unix command-line interface to R can only provide the inbuilt
3927
command line editor which allows recall, editing and re-submission of
3932
command line editor which allows recall, editing and re-submission of
3928
prior commands provided that the <small>GNU</small> readline library is
3933
prior commands provided that the <small>GNU</small> readline library is
3929
available at the time R is configured for compilation.  Note that the
3934
available at the time R is configured for compilation.  Note that the
3930
`development' version of readline including the appropriate headers is
3935
`development' version of readline including the appropriate headers is
3931
needed: users of Linux binary distributions will need to install
3936
needed: users of Linux binary distributions will need to install
3932
packages such as <code>libreadline-dev</code> (Debian) or
3937
packages such as <code>libreadline-dev</code> (Debian) or
3933
<code>readline-devel</code> (Red Hat).
3938
<code>readline-devel</code> (Red Hat).
3934
 
3939
 
3935
<div class="node">
3940
<div class="node">
3936
<p><hr>
3941
<p><hr>
3937
Node:&nbsp;<a name="How%20can%20I%20turn%20a%20string%20into%20a%20variable%3f">How can I turn a string into a variable?</a>,
3942
Node:&nbsp;<a name="How%20can%20I%20turn%20a%20string%20into%20a%20variable%3f">How can I turn a string into a variable?</a>,
3938
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20do%20lattice%2ftrellis%20graphics%20not%20work%3f">Why do lattice/trellis graphics not work?</a>,
3943
Next:&nbsp;<a rel="next" accesskey="n" href="#Why%20do%20lattice%2ftrellis%20graphics%20not%20work%3f">Why do lattice/trellis graphics not work?</a>,
3939
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20get%20command%20line%20editing%20to%20work%3f">How can I get command line editing to work?</a>,
3944
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20get%20command%20line%20editing%20to%20work%3f">How can I get command line editing to work?</a>,
3940
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3945
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3941
<br>
3946
<br>
3942
</div>
3947
</div>
3943
 
3948
 
3944
<h3 class="section">7.23 How can I turn a string into a variable?</h3>
3949
<h3 class="section">7.23 How can I turn a string into a variable?</h3>
3945
 
3950
 
3946
<p>If you have
3951
<p>If you have
3947
 
3952
 
3948
<pre class="example">     varname &lt;- c("a", "b", "d")
3953
<pre class="example">     varname &lt;- c("a", "b", "d")
3949
     </pre>
3954
     </pre>
3950
 
3955
 
3951
<p>you can do
3956
<p>you can do
3952
 
3957
 
3953
<pre class="example">     get(varname[1]) + 2
3958
<pre class="example">     get(varname[1]) + 2
3954
     </pre>
3959
     </pre>
3955
 
3960
 
3956
<p>for
3961
<p>for
3957
 
3962
 
3958
<pre class="example">     a + 2
3963
<pre class="example">     a + 2
3959
     </pre>
3964
     </pre>
3960
 
3965
 
3961
<p>or
3966
<p>or
3962
 
3967
 
3963
<pre class="example">     assign(varname[1], 2 + 2)
3968
<pre class="example">     assign(varname[1], 2 + 2)
3964
     </pre>
3969
     </pre>
3965
 
3970
 
3966
<p>for
3971
<p>for
3967
 
3972
 
3968
<pre class="example">     a &lt;- 2 + 2
3973
<pre class="example">     a &lt;- 2 + 2
3969
     </pre>
3974
     </pre>
3970
 
3975
 
3971
<p>or
3976
<p>or
3972
 
3977
 
3973
<pre class="example">     eval(substitute(lm(y ~ x + variable),
3978
<pre class="example">     eval(substitute(lm(y ~ x + variable),
3974
                     list(variable = as.name(varname[1]))
3979
                     list(variable = as.name(varname[1]))
3975
     </pre>
3980
     </pre>
3976
 
3981
 
3977
<p>for
3982
<p>for
3978
 
3983
 
3979
<pre class="example">     lm(y ~ x + a)
3984
<pre class="example">     lm(y ~ x + a)
3980
     </pre>
3985
     </pre>
3981
 
3986
 
3982
   <p>At least in the first two cases it is often easier to just use a list,
3987
   <p>At least in the first two cases it is often easier to just use a list,
3983
and then you can easily index it by name
3988
and then you can easily index it by name
3984
 
3989
 
3985
<pre class="example">     vars &lt;- list(a = 1:10, b = rnorm(100), d = LETTERS)
3990
<pre class="example">     vars &lt;- list(a = 1:10, b = rnorm(100), d = LETTERS)
3986
     vars[["a"]]
3991
     vars[["a"]]
3987
     </pre>
3992
     </pre>
3988
 
3993
 
3989
<p>without any of this messing about.
3994
<p>without any of this messing about.
3990
 
3995
 
3991
<div class="node">
3996
<div class="node">
3992
<p><hr>
3997
<p><hr>
3993
Node:&nbsp;<a name="Why%20do%20lattice%2ftrellis%20graphics%20not%20work%3f">Why do lattice/trellis graphics not work?</a>,
3998
Node:&nbsp;<a name="Why%20do%20lattice%2ftrellis%20graphics%20not%20work%3f">Why do lattice/trellis graphics not work?</a>,
3994
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20sort%20the%20rows%20of%20a%20data%20frame%3f">How can I sort the rows of a data frame?</a>,
3999
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20sort%20the%20rows%20of%20a%20data%20frame%3f">How can I sort the rows of a data frame?</a>,
3995
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20turn%20a%20string%20into%20a%20variable%3f">How can I turn a string into a variable?</a>,
4000
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20turn%20a%20string%20into%20a%20variable%3f">How can I turn a string into a variable?</a>,
3996
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
4001
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
3997
<br>
4002
<br>
3998
</div>
4003
</div>
3999
 
4004
 
4000
<h3 class="section">7.24 Why do lattice/trellis graphics not work?</h3>
4005
<h3 class="section">7.24 Why do lattice/trellis graphics not work?</h3>
4001
 
4006
 
4002
<p>The most likely reason is that you forgot to tell R to display the
4007
<p>The most likely reason is that you forgot to tell R to display the
4003
graph.  Lattice functions such as <code>xyplot()</code> create a graph object,
4008
graph.  Lattice functions such as <code>xyplot()</code> create a graph object,
4004
but do not display it (the same is true of Trellis graphics in
4009
but do not display it (the same is true of Trellis graphics in
4005
<small>S-PLUS</small>).  The <code>print()</code> method for the graph object produces the
4010
<small>S-PLUS</small>).  The <code>print()</code> method for the graph object produces the
4006
actual display.  When you use these functions interactively at the
4011
actual display.  When you use these functions interactively at the
4007
command line, the result is automatically printed, but in
4012
command line, the result is automatically printed, but in
4008
<code>source()</code> or inside your own functions you will need an explicit
4013
<code>source()</code> or inside your own functions you will need an explicit
4009
<code>print()</code> statement.
4014
<code>print()</code> statement.
4010
 
4015
 
4011
<div class="node">
4016
<div class="node">
4012
<p><hr>
4017
<p><hr>
4013
Node:&nbsp;<a name="How%20can%20I%20sort%20the%20rows%20of%20a%20data%20frame%3f">How can I sort the rows of a data frame?</a>,
4018
Node:&nbsp;<a name="How%20can%20I%20sort%20the%20rows%20of%20a%20data%20frame%3f">How can I sort the rows of a data frame?</a>,
4014
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20do%20lattice%2ftrellis%20graphics%20not%20work%3f">Why do lattice/trellis graphics not work?</a>,
4019
Previous:&nbsp;<a rel="previous" accesskey="p" href="#Why%20do%20lattice%2ftrellis%20graphics%20not%20work%3f">Why do lattice/trellis graphics not work?</a>,
4015
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
4020
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Miscellanea">R Miscellanea</a>
4016
<br>
4021
<br>
4017
</div>
4022
</div>
4018
 
4023
 
4019
<h3 class="section">7.25 How can I sort the rows of a data frame?</h3>
4024
<h3 class="section">7.25 How can I sort the rows of a data frame?</h3>
4020
 
4025
 
4021
<p>To sort the rows within a data frame, with respect to the values in one
4026
<p>To sort the rows within a data frame, with respect to the values in one
4022
or more of the columns, simply use <code>order()</code>.
4027
or more of the columns, simply use <code>order()</code>.
4023
 
4028
 
4024
<div class="node">
4029
<div class="node">
4025
<p><hr>
4030
<p><hr>
4026
Node:&nbsp;<a name="R%20Programming">R Programming</a>,
4031
Node:&nbsp;<a name="R%20Programming">R Programming</a>,
4027
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Bugs">R Bugs</a>,
4032
Next:&nbsp;<a rel="next" accesskey="n" href="#R%20Bugs">R Bugs</a>,
4028
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Miscellanea">R Miscellanea</a>,
4033
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Miscellanea">R Miscellanea</a>,
4029
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
4034
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
4030
<br>
4035
<br>
4031
</div>
4036
</div>
4032
 
4037
 
4033
<h2 class="chapter">8 R Programming</h2>
4038
<h2 class="chapter">8 R Programming</h2>
4034
 
4039
 
4035
<ul class="menu">
4040
<ul class="menu">
4036
<li><a accesskey="1" href="#How%20should%20I%20write%20summary%20methods%3f">How should I write summary methods?</a>: 
4041
<li><a accesskey="1" href="#How%20should%20I%20write%20summary%20methods%3f">How should I write summary methods?</a>: 
4037
<li><a accesskey="2" href="#How%20can%20I%20debug%20dynamically%20loaded%20code%3f">How can I debug dynamically loaded code?</a>: 
4042
<li><a accesskey="2" href="#How%20can%20I%20debug%20dynamically%20loaded%20code%3f">How can I debug dynamically loaded code?</a>: 
4038
<li><a accesskey="3" href="#How%20can%20I%20inspect%20R%20objects%20when%20debugging%3f">How can I inspect R objects when debugging?</a>: 
4043
<li><a accesskey="3" href="#How%20can%20I%20inspect%20R%20objects%20when%20debugging%3f">How can I inspect R objects when debugging?</a>: 
4039
<li><a accesskey="4" href="#How%20can%20I%20change%20compilation%20flags%3f">How can I change compilation flags?</a>: 
4044
<li><a accesskey="4" href="#How%20can%20I%20change%20compilation%20flags%3f">How can I change compilation flags?</a>: 
4040
</ul>
4045
</ul>
4041
 
4046
 
4042
<div class="node">
4047
<div class="node">
4043
<p><hr>
4048
<p><hr>
4044
Node:&nbsp;<a name="How%20should%20I%20write%20summary%20methods%3f">How should I write summary methods?</a>,
4049
Node:&nbsp;<a name="How%20should%20I%20write%20summary%20methods%3f">How should I write summary methods?</a>,
4045
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20debug%20dynamically%20loaded%20code%3f">How can I debug dynamically loaded code?</a>,
4050
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20debug%20dynamically%20loaded%20code%3f">How can I debug dynamically loaded code?</a>,
4046
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Programming">R Programming</a>,
4051
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Programming">R Programming</a>,
4047
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Programming">R Programming</a>
4052
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Programming">R Programming</a>
4048
<br>
4053
<br>
4049
</div>
4054
</div>
4050
 
4055
 
4051
<h3 class="section">8.1 How should I write summary methods?</h3>
4056
<h3 class="section">8.1 How should I write summary methods?</h3>
4052
 
4057
 
4053
<p>Suppose you want to provide a summary method for class <code>"foo"</code>. 
4058
<p>Suppose you want to provide a summary method for class <code>"foo"</code>. 
4054
Then <code>summary.foo()</code> should not print anything, but return an
4059
Then <code>summary.foo()</code> should not print anything, but return an
4055
object of class <code>"summary.foo"</code>, <em>and</em> you should write a
4060
object of class <code>"summary.foo"</code>, <em>and</em> you should write a
4056
method <code>print.summary.foo()</code> which nicely prints the summary
4061
method <code>print.summary.foo()</code> which nicely prints the summary
4057
information and invisibly returns its object.  This approach is
4062
information and invisibly returns its object.  This approach is
4058
preferred over having <code>summary.foo()</code> print summary information and
4063
preferred over having <code>summary.foo()</code> print summary information and
4059
return something useful, as sometimes you need to grab something
4064
return something useful, as sometimes you need to grab something
4060
computed by <code>summary()</code> inside a function or similar.  In such
4065
computed by <code>summary()</code> inside a function or similar.  In such
4061
cases you don't want anything printed.
4066
cases you don't want anything printed.
4062
 
4067
 
4063
<div class="node">
4068
<div class="node">
4064
<p><hr>
4069
<p><hr>
4065
Node:&nbsp;<a name="How%20can%20I%20debug%20dynamically%20loaded%20code%3f">How can I debug dynamically loaded code?</a>,
4070
Node:&nbsp;<a name="How%20can%20I%20debug%20dynamically%20loaded%20code%3f">How can I debug dynamically loaded code?</a>,
4066
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20inspect%20R%20objects%20when%20debugging%3f">How can I inspect R objects when debugging?</a>,
4071
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20inspect%20R%20objects%20when%20debugging%3f">How can I inspect R objects when debugging?</a>,
4067
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20should%20I%20write%20summary%20methods%3f">How should I write summary methods?</a>,
4072
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20should%20I%20write%20summary%20methods%3f">How should I write summary methods?</a>,
4068
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Programming">R Programming</a>
4073
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Programming">R Programming</a>
4069
<br>
4074
<br>
4070
</div>
4075
</div>
4071
 
4076
 
4072
<h3 class="section">8.2 How can I debug dynamically loaded code?</h3>
4077
<h3 class="section">8.2 How can I debug dynamically loaded code?</h3>
4073
 
4078
 
4074
<p>Roughly speaking, you need to start R inside the debugger, load the
4079
<p>Roughly speaking, you need to start R inside the debugger, load the
4075
code, send an interrupt, and then set the required breakpoints.
4080
code, send an interrupt, and then set the required breakpoints.
4076
 
4081
 
4077
   <p>See section "Finding entry points in dynamically loaded code" in
4082
   <p>See section "Finding entry points in dynamically loaded code" in
4078
<cite>Writing R Extensions</cite>. 
4083
<cite>Writing R Extensions</cite>. 
4079
This manual is included in the R distribution, see <a href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>.
4084
This manual is included in the R distribution, see <a href="#What%20documentation%20exists%20for%20R%3f">What documentation exists for R?</a>.
4080
 
4085
 
4081
<div class="node">
4086
<div class="node">
4082
<p><hr>
4087
<p><hr>
4083
Node:&nbsp;<a name="How%20can%20I%20inspect%20R%20objects%20when%20debugging%3f">How can I inspect R objects when debugging?</a>,
4088
Node:&nbsp;<a name="How%20can%20I%20inspect%20R%20objects%20when%20debugging%3f">How can I inspect R objects when debugging?</a>,
4084
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20change%20compilation%20flags%3f">How can I change compilation flags?</a>,
4089
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20can%20I%20change%20compilation%20flags%3f">How can I change compilation flags?</a>,
4085
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20debug%20dynamically%20loaded%20code%3f">How can I debug dynamically loaded code?</a>,
4090
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20debug%20dynamically%20loaded%20code%3f">How can I debug dynamically loaded code?</a>,
4086
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Programming">R Programming</a>
4091
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Programming">R Programming</a>
4087
<br>
4092
<br>
4088
</div>
4093
</div>
4089
 
4094
 
4090
<h3 class="section">8.3 How can I inspect R objects when debugging?</h3>
4095
<h3 class="section">8.3 How can I inspect R objects when debugging?</h3>
4091
 
4096
 
4092
<p>The most convenient way is to call <code>R_PV</code> from the symbolic
4097
<p>The most convenient way is to call <code>R_PV</code> from the symbolic
4093
debugger.
4098
debugger.
4094
 
4099
 
4095
   <p>See section "Inspecting R objects when debugging" in <cite>Writing R
4100
   <p>See section "Inspecting R objects when debugging" in <cite>Writing R
4096
Extensions</cite>.
4101
Extensions</cite>.
4097
 
4102
 
4098
<div class="node">
4103
<div class="node">
4099
<p><hr>
4104
<p><hr>
4100
Node:&nbsp;<a name="How%20can%20I%20change%20compilation%20flags%3f">How can I change compilation flags?</a>,
4105
Node:&nbsp;<a name="How%20can%20I%20change%20compilation%20flags%3f">How can I change compilation flags?</a>,
4101
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20inspect%20R%20objects%20when%20debugging%3f">How can I inspect R objects when debugging?</a>,
4106
Previous:&nbsp;<a rel="previous" accesskey="p" href="#How%20can%20I%20inspect%20R%20objects%20when%20debugging%3f">How can I inspect R objects when debugging?</a>,
4102
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Programming">R Programming</a>
4107
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Programming">R Programming</a>
4103
<br>
4108
<br>
4104
</div>
4109
</div>
4105
 
4110
 
4106
<h3 class="section">8.4 How can I change compilation flags?</h3>
4111
<h3 class="section">8.4 How can I change compilation flags?</h3>
4107
 
4112
 
4108
<p>Suppose you have C code file for dynloading into R, but you want to use
4113
<p>Suppose you have C code file for dynloading into R, but you want to use
4109
<code>R CMD SHLIB</code> with compilation flags other than the default ones
4114
<code>R CMD SHLIB</code> with compilation flags other than the default ones
4110
(which were determined when R was built).  You could change the file
4115
(which were determined when R was built).  You could change the file
4111
<code>R_HOME/etc/Makeconf</code> to reflect your preferences.  If you
4116
<code>R_HOME/etc/Makeconf</code> to reflect your preferences.  If you
4112
are a Bourne shell user, you can also pass the desired flags to Make
4117
are a Bourne shell user, you can also pass the desired flags to Make
4113
(which is used for controlling compilation) via the Make variable
4118
(which is used for controlling compilation) via the Make variable
4114
<code>MAKEFLAGS</code>, as in
4119
<code>MAKEFLAGS</code>, as in
4115
 
4120
 
4116
<pre class="example">     MAKEFLAGS="CFLAGS=-O3" R CMD SHLIB *.c
4121
<pre class="example">     MAKEFLAGS="CFLAGS=-O3" R CMD SHLIB *.c
4117
     </pre>
4122
     </pre>
4118
 
4123
 
4119
<div class="node">
4124
<div class="node">
4120
<p><hr>
4125
<p><hr>
4121
Node:&nbsp;<a name="R%20Bugs">R Bugs</a>,
4126
Node:&nbsp;<a name="R%20Bugs">R Bugs</a>,
4122
Next:&nbsp;<a rel="next" accesskey="n" href="#Acknowledgments">Acknowledgments</a>,
4127
Next:&nbsp;<a rel="next" accesskey="n" href="#Acknowledgments">Acknowledgments</a>,
4123
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Programming">R Programming</a>,
4128
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Programming">R Programming</a>,
4124
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
4129
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
4125
<br>
4130
<br>
4126
</div>
4131
</div>
4127
 
4132
 
4128
<h2 class="chapter">9 R Bugs</h2>
4133
<h2 class="chapter">9 R Bugs</h2>
4129
 
4134
 
4130
<ul class="menu">
4135
<ul class="menu">
4131
<li><a accesskey="1" href="#What%20is%20a%20bug%3f">What is a bug?</a>: 
4136
<li><a accesskey="1" href="#What%20is%20a%20bug%3f">What is a bug?</a>: 
4132
<li><a accesskey="2" href="#How%20to%20report%20a%20bug">How to report a bug</a>: 
4137
<li><a accesskey="2" href="#How%20to%20report%20a%20bug">How to report a bug</a>: 
4133
</ul>
4138
</ul>
4134
 
4139
 
4135
<div class="node">
4140
<div class="node">
4136
<p><hr>
4141
<p><hr>
4137
Node:&nbsp;<a name="What%20is%20a%20bug%3f">What is a bug?</a>,
4142
Node:&nbsp;<a name="What%20is%20a%20bug%3f">What is a bug?</a>,
4138
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20to%20report%20a%20bug">How to report a bug</a>,
4143
Next:&nbsp;<a rel="next" accesskey="n" href="#How%20to%20report%20a%20bug">How to report a bug</a>,
4139
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Bugs">R Bugs</a>,
4144
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Bugs">R Bugs</a>,
4140
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Bugs">R Bugs</a>
4145
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Bugs">R Bugs</a>
4141
<br>
4146
<br>
4142
</div>
4147
</div>
4143
 
4148
 
4144
<h3 class="section">9.1 What is a bug?</h3>
4149
<h3 class="section">9.1 What is a bug?</h3>
4145
 
4150
 
4146
<p>If R executes an illegal instruction, or dies with an operating system
4151
<p>If R executes an illegal instruction, or dies with an operating system
4147
error message that indicates a problem in the program (as opposed to
4152
error message that indicates a problem in the program (as opposed to
4148
something like "disk full"), then it is certainly a bug.  If you call
4153
something like "disk full"), then it is certainly a bug.  If you call
4149
<code>.C()</code>, <code>.Fortran()</code>, <code>.External()</code> or <code>.Call()</code> (or
4154
<code>.C()</code>, <code>.Fortran()</code>, <code>.External()</code> or <code>.Call()</code> (or
4150
<code>.Internal()</code>) yourself (or in a function you wrote), you can
4155
<code>.Internal()</code>) yourself (or in a function you wrote), you can
4151
always crash R by using wrong argument types (modes).  This is not a
4156
always crash R by using wrong argument types (modes).  This is not a
4152
bug.
4157
bug.
4153
 
4158
 
4154
   <p>Taking forever to complete a command can be a bug, but you must make
4159
   <p>Taking forever to complete a command can be a bug, but you must make
4155
certain that it was really R's fault.  Some commands simply take a long
4160
certain that it was really R's fault.  Some commands simply take a long
4156
time.  If the input was such that you <em>know</em> it should have been
4161
time.  If the input was such that you <em>know</em> it should have been
4157
processed quickly, report a bug.  If you don't know whether the command
4162
processed quickly, report a bug.  If you don't know whether the command
4158
should take a long time, find out by looking in the manual or by asking
4163
should take a long time, find out by looking in the manual or by asking
4159
for assistance.
4164
for assistance.
4160
 
4165
 
4161
   <p>If a command you are familiar with causes an R error message in a case
4166
   <p>If a command you are familiar with causes an R error message in a case
4162
where its usual definition ought to be reasonable, it is probably a bug. 
4167
where its usual definition ought to be reasonable, it is probably a bug. 
4163
If a command does the wrong thing, that is a bug.  But be sure you know
4168
If a command does the wrong thing, that is a bug.  But be sure you know
4164
for certain what it ought to have done.  If you aren't familiar with the
4169
for certain what it ought to have done.  If you aren't familiar with the
4165
command, or don't know for certain how the command is supposed to work,
4170
command, or don't know for certain how the command is supposed to work,
4166
then it might actually be working right.  Rather than jumping to
4171
then it might actually be working right.  Rather than jumping to
4167
conclusions, show the problem to someone who knows for certain.
4172
conclusions, show the problem to someone who knows for certain.
4168
 
4173
 
4169
   <p>Finally, a command's intended definition may not be best for statistical
4174
   <p>Finally, a command's intended definition may not be best for statistical
4170
analysis.  This is a very important sort of problem, but it is also a
4175
analysis.  This is a very important sort of problem, but it is also a
4171
matter of judgment.  Also, it is easy to come to such a conclusion out
4176
matter of judgment.  Also, it is easy to come to such a conclusion out
4172
of ignorance of some of the existing features.  It is probably best not
4177
of ignorance of some of the existing features.  It is probably best not
4173
to complain about such a problem until you have checked the
4178
to complain about such a problem until you have checked the
4174
documentation in the usual ways, feel confident that you understand it,
4179
documentation in the usual ways, feel confident that you understand it,
4175
and know for certain that what you want is not available.  If you are
4180
and know for certain that what you want is not available.  If you are
4176
not sure what the command is supposed to do after a careful reading of
4181
not sure what the command is supposed to do after a careful reading of
4177
the manual this indicates a bug in the manual.  The manual's job is to
4182
the manual this indicates a bug in the manual.  The manual's job is to
4178
make everything clear.  It is just as important to report documentation
4183
make everything clear.  It is just as important to report documentation
4179
bugs as program bugs.  However, we know that the introductory
4184
bugs as program bugs.  However, we know that the introductory
4180
documentation is seriously inadequate, so you don't need to report this.
4185
documentation is seriously inadequate, so you don't need to report this.
4181
 
4186
 
4182
   <p>If the online argument list of a function disagrees with the manual, one
4187
   <p>If the online argument list of a function disagrees with the manual, one
4183
of them must be wrong, so report the bug.
4188
of them must be wrong, so report the bug.
4184
 
4189
 
4185
<div class="node">
4190
<div class="node">
4186
<p><hr>
4191
<p><hr>
4187
Node:&nbsp;<a name="How%20to%20report%20a%20bug">How to report a bug</a>,
4192
Node:&nbsp;<a name="How%20to%20report%20a%20bug">How to report a bug</a>,
4188
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20a%20bug%3f">What is a bug?</a>,
4193
Previous:&nbsp;<a rel="previous" accesskey="p" href="#What%20is%20a%20bug%3f">What is a bug?</a>,
4189
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Bugs">R Bugs</a>
4194
Up:&nbsp;<a rel="up" accesskey="u" href="#R%20Bugs">R Bugs</a>
4190
<br>
4195
<br>
4191
</div>
4196
</div>
4192
 
4197
 
4193
<h3 class="section">9.2 How to report a bug</h3>
4198
<h3 class="section">9.2 How to report a bug</h3>
4194
 
4199
 
4195
<p>When you decide that there is a bug, it is important to report it and to
4200
<p>When you decide that there is a bug, it is important to report it and to
4196
report it in a way which is useful.  What is most useful is an exact
4201
report it in a way which is useful.  What is most useful is an exact
4197
description of what commands you type, starting with the shell command
4202
description of what commands you type, starting with the shell command
4198
to run R, until the problem happens.  Always include the version of R,
4203
to run R, until the problem happens.  Always include the version of R,
4199
machine, and operating system that you are using; type <kbd>version</kbd> in
4204
machine, and operating system that you are using; type <kbd>version</kbd> in
4200
R to print this.
4205
R to print this.
4201
 
4206
 
4202
   <p>The most important principle in reporting a bug is to report
4207
   <p>The most important principle in reporting a bug is to report
4203
<em>facts</em>, not hypotheses or categorizations.  It is always easier to
4208
<em>facts</em>, not hypotheses or categorizations.  It is always easier to
4204
report the facts, but people seem to prefer to strain to posit
4209
report the facts, but people seem to prefer to strain to posit
4205
explanations and report them instead.  If the explanations are based on
4210
explanations and report them instead.  If the explanations are based on
4206
guesses about how R is implemented, they will be useless; others will
4211
guesses about how R is implemented, they will be useless; others will
4207
have to try to figure out what the facts must have been to lead to such
4212
have to try to figure out what the facts must have been to lead to such
4208
speculations.  Sometimes this is impossible.  But in any case, it is
4213
speculations.  Sometimes this is impossible.  But in any case, it is
4209
unnecessary work for the ones trying to fix the problem.
4214
unnecessary work for the ones trying to fix the problem.
4210
 
4215
 
4211
   <p>For example, suppose that on a data set which you know to be quite large
4216
   <p>For example, suppose that on a data set which you know to be quite large
4212
the command
4217
the command
4213
 
4218
 
4214
<pre class="example">     R&gt; data.frame(x, y, z, monday, tuesday)
4219
<pre class="example">     R&gt; data.frame(x, y, z, monday, tuesday)
4215
     </pre>
4220
     </pre>
4216
 
4221
 
4217
<p>never returns.  Do not report that <code>data.frame()</code> fails for large
4222
<p>never returns.  Do not report that <code>data.frame()</code> fails for large
4218
data sets.  Perhaps it fails when a variable name is a day of the week. 
4223
data sets.  Perhaps it fails when a variable name is a day of the week. 
4219
If this is so then when others got your report they would try out the
4224
If this is so then when others got your report they would try out the
4220
<code>data.frame()</code> command on a large data set, probably with no day of
4225
<code>data.frame()</code> command on a large data set, probably with no day of
4221
the week variable name, and not see any problem.  There is no way in the
4226
the week variable name, and not see any problem.  There is no way in the
4222
world that others could guess that they should try a day of the week
4227
world that others could guess that they should try a day of the week
4223
variable name.
4228
variable name.
4224
 
4229
 
4225
   <p>Or perhaps the command fails because the last command you used was a
4230
   <p>Or perhaps the command fails because the last command you used was a
4226
method for <code>"["()</code> that had a bug causing R's internal data
4231
method for <code>"["()</code> that had a bug causing R's internal data
4227
structures to be corrupted and making the <code>data.frame()</code> command
4232
structures to be corrupted and making the <code>data.frame()</code> command
4228
fail from then on.  This is why others need to know what other commands
4233
fail from then on.  This is why others need to know what other commands
4229
you have typed (or read from your startup file).
4234
you have typed (or read from your startup file).
4230
 
4235
 
4231
   <p>It is very useful to try and find simple examples that produce
4236
   <p>It is very useful to try and find simple examples that produce
4232
apparently the same bug, and somewhat useful to find simple examples
4237
apparently the same bug, and somewhat useful to find simple examples
4233
that might be expected to produce the bug but actually do not.  If you
4238
that might be expected to produce the bug but actually do not.  If you
4234
want to debug the problem and find exactly what caused it, that is
4239
want to debug the problem and find exactly what caused it, that is
4235
wonderful.  You should still report the facts as well as any
4240
wonderful.  You should still report the facts as well as any
4236
explanations or solutions.  Please include an example that reproduces
4241
explanations or solutions.  Please include an example that reproduces
4237
the problem, preferably the simplest one you have found.
4242
the problem, preferably the simplest one you have found.
4238
 
4243
 
4239
   <p>Invoking R with the <code>--vanilla</code> option may help in isolating a
4244
   <p>Invoking R with the <code>--vanilla</code> option may help in isolating a
4240
bug.  This ensures that the site profile and saved data files are not
4245
bug.  This ensures that the site profile and saved data files are not
4241
read.
4246
read.
4242
 
4247
 
4243
   <p>On Unix systems a bug report can be generated using the function
4248
   <p>On Unix systems a bug report can be generated using the function
4244
<code>bug.report()</code>.  This automatically includes the version
4249
<code>bug.report()</code>.  This automatically includes the version
4245
information and sends the bug to the correct address.  Alternatively the
4250
information and sends the bug to the correct address.  Alternatively the
4246
bug report can be emailed to <a href="mailto:R-bugs@R-project.org">R-bugs@R-project.org</a> or submitted
4251
bug report can be emailed to <a href="mailto:R-bugs@R-project.org">R-bugs@R-project.org</a> or submitted
4247
to the Web page at <a href="http://bugs.R-project.org/">http://bugs.R-project.org/</a>.
4252
to the Web page at <a href="http://bugs.R-project.org/">http://bugs.R-project.org/</a>.
4248
 
4253
 
4249
   <p>Bug reports on contributed packages should perhaps be sent to the
4254
   <p>Bug reports on contributed packages should perhaps be sent to the
4250
package maintainer rather than to R-bugs.
4255
package maintainer rather than to R-bugs.
4251
 
4256
 
4252
<div class="node">
4257
<div class="node">
4253
<p><hr>
4258
<p><hr>
4254
Node:&nbsp;<a name="Acknowledgments">Acknowledgments</a>,
4259
Node:&nbsp;<a name="Acknowledgments">Acknowledgments</a>,
4255
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Bugs">R Bugs</a>,
4260
Previous:&nbsp;<a rel="previous" accesskey="p" href="#R%20Bugs">R Bugs</a>,
4256
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
4261
Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
4257
<br>
4262
<br>
4258
</div>
4263
</div>
4259
 
4264
 
4260
<h2 class="chapter">10 Acknowledgments</h2>
4265
<h2 class="chapter">10 Acknowledgments</h2>
4261
 
4266
 
4262
<p>Of course, many many thanks to Robert and Ross for the R system, and to
4267
<p>Of course, many many thanks to Robert and Ross for the R system, and to
4263
the package writers and porters for adding to it.
4268
the package writers and porters for adding to it.
4264
 
4269
 
4265
   <p>Special thanks go to Doug Bates, Peter Dalgaard, Paul Gilbert, Stefano
4270
   <p>Special thanks go to Doug Bates, Peter Dalgaard, Paul Gilbert, Stefano
4266
Iacus, Fritz Leisch, Jim Lindsey, Thomas Lumley, Martin Maechler, Brian
4271
Iacus, Fritz Leisch, Jim Lindsey, Thomas Lumley, Martin Maechler, Brian
4267
D. Ripley, Anthony Rossini, and Andreas Weingessel for their comments
4272
D. Ripley, Anthony Rossini, and Andreas Weingessel for their comments
4268
which helped me improve this <small>FAQ</small>.
4273
which helped me improve this <small>FAQ</small>.
4269
 
4274
 
4270
   <p>More to some soon <small class="dots">...</small>
4275
   <p>More to some soon <small class="dots">...</small>
4271
 
4276
 
4272
   </body></html>
4277
   </body></html>
4273
 
4278