<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.scott5.org/index.php?action=history&amp;feed=atom&amp;title=R_Basics</id>
	<title>R Basics - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.scott5.org/index.php?action=history&amp;feed=atom&amp;title=R_Basics"/>
	<link rel="alternate" type="text/html" href="https://wiki.scott5.org/index.php?title=R_Basics&amp;action=history"/>
	<updated>2026-08-26T00:15:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.scott5.org/index.php?title=R_Basics&amp;diff=1502&amp;oldid=prev</id>
		<title>Scott at 00:39, 28 February 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.scott5.org/index.php?title=R_Basics&amp;diff=1502&amp;oldid=prev"/>
		<updated>2015-02-28T00:39:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:39, 28 February 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;add this line to /etc/apt/sources.list:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;add this line to /etc/apt/sources.list:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;deb http://cran.cnr.Berkeley.edu/bin/linux/ubuntu&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/ lucid&lt;/del&gt;/&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;deb http://cran.cnr.Berkeley.edu/bin/linux/ubuntu &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;trusty&lt;/ins&gt;/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;then run &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;then run &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l9&quot;&gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you get an error message about GPG keys:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you get an error message about GPG keys:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gpg &lt;/del&gt;--keyserver keyserver.ubuntu.com --recv-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;key E2A11821&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sudo apt-key adv &lt;/ins&gt;--keyserver keyserver.ubuntu.com --recv-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;keys E084DAB9&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gpg -a --export E2A11821 &amp;gt; foo&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;apt-key add foo&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Repeat this for additional error signatures.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Repeat this for additional error signatures.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Scott</name></author>
	</entry>
	<entry>
		<id>https://wiki.scott5.org/index.php?title=R_Basics&amp;diff=287&amp;oldid=prev</id>
		<title>Scott at 19:44, 2 February 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.scott5.org/index.php?title=R_Basics&amp;diff=287&amp;oldid=prev"/>
		<updated>2011-02-02T19:44:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!--  NOTE: use &amp;lt;source lang=&amp;quot;rsplus&amp;quot;&amp;gt; instead of &amp;lt;pre&amp;gt; after we upgrade --&amp;gt;&lt;br /&gt;
==Install on Ubuntu==&lt;br /&gt;
add this line to /etc/apt/sources.list:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cran.cnr.Berkeley.edu/bin/linux/ubuntu/ lucid/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then run &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get an error message about GPG keys:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpg --keyserver keyserver.ubuntu.com --recv-key E2A11821&lt;br /&gt;
gpg -a --export E2A11821 &amp;gt; foo&lt;br /&gt;
apt-key add foo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Repeat this for additional error signatures.&lt;br /&gt;
&lt;br /&gt;
install basic R packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install r-base&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To get third-party packages from CRAN, start R as root.  Then run a command like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
install.packages(c(&amp;quot;iterators&amp;quot;, &amp;quot;foreach&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Help System==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
help(glm)                    # get help on a function&lt;br /&gt;
?glm                         # same thing&lt;br /&gt;
example(glm)                 # see an example&lt;br /&gt;
help.search(&amp;quot;regression&amp;quot;)    # search all help files&lt;br /&gt;
??regression                 # same thing&lt;br /&gt;
vignette(&amp;quot;affy&amp;quot;)             # how to use a package&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Running R==&lt;br /&gt;
&lt;br /&gt;
Start an interactive console with &amp;quot;&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt;&amp;quot;.  Use the &amp;quot;&amp;lt;code&amp;gt;q()&amp;lt;/code&amp;gt;&amp;quot; command to quit.&lt;br /&gt;
&lt;br /&gt;
To run an R script from the command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R CMD BATCH generate_graphs.R&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run an R script from an interactive console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source generate_graphs.R&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
* Comments are anything after a pound sign.&lt;br /&gt;
* Semicolons may be used to separate expressions.&lt;br /&gt;
* Curly braces may group a sequence of expressions and return only the last expression.&lt;br /&gt;
&lt;br /&gt;
==Control==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (x &amp;lt; y) x else y&lt;br /&gt;
 &lt;br /&gt;
repeat {if (i &amp;gt; 25) break else {print(i); i &amp;lt;- i + 5;}}&lt;br /&gt;
  &lt;br /&gt;
while (i &amp;lt;= 25) {print(i); i &amp;lt;- i + 5}&lt;br /&gt;
&lt;br /&gt;
for (i in seq(from=5,to=25,by=5)) print(i)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
=====iterators package (from CRAN)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; library(iterators)&lt;br /&gt;
&amp;gt; onetofive = iter(1:5)&lt;br /&gt;
&amp;gt; nextElem(onetofive)       # 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====foreach package (from CRAN)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; foreach(i=1:5) %do% sqrt(i)      # 1, 1.414214, 1.732051, 2, 2.236068&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assignment==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
x = 34&lt;br /&gt;
x &amp;lt;- 34&lt;br /&gt;
34 -&amp;gt; x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Values are generally copied on assignment.&lt;br /&gt;
&lt;br /&gt;
==Special Values==&lt;br /&gt;
&amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt; (for missing data), &amp;lt;code&amp;gt;Inf&amp;lt;/code&amp;gt; (infinity), &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt; (bad computation), &amp;lt;code&amp;gt;NULL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TRUE&amp;lt;/code&amp;gt; (=1), &amp;lt;code&amp;gt;FALSE&amp;lt;/code&amp;gt; (=0)&lt;br /&gt;
&lt;br /&gt;
==Data Types and Classes==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
x = 22&lt;br /&gt;
class(x)                 # &amp;quot;numeric&amp;quot;, class refers to how an object may be used&lt;br /&gt;
class(&amp;quot;hi&amp;quot;)              # &amp;quot;character&amp;quot;&lt;br /&gt;
typeof(x)                # &amp;quot;double&amp;quot;, type refers to how an object is stored&lt;br /&gt;
x = as(22, &amp;quot;integer&amp;quot;)    # type-casting&lt;br /&gt;
typeof(x)                # &amp;quot;integer&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strings (or character vectors)==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
paste(&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;)            # &amp;quot;a b&amp;quot;, default separator is single space&lt;br /&gt;
paste(&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, sep=&amp;quot;&amp;quot;)    # &amp;quot;ab&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vectors==&lt;br /&gt;
A vector is a one-dimensional sequence of same-typed elements&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
c(0, 1, 1, 2, &amp;lt;span class=&amp;quot;docTextHighlight&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;, 5, 8)&lt;br /&gt;
x = 1:10      # same as x = c(1,2,3,4,5,6,7,8,9,10)&lt;br /&gt;
x[3]          # 3&lt;br /&gt;
x[[3]]        # 3&lt;br /&gt;
x[3:6]        # same as c(3,4,5,6)&lt;br /&gt;
x[-1:-5]      # c(6,7,8,9,10)&lt;br /&gt;
x[x&amp;gt;5]        # c(6,7,8,9,10)&lt;br /&gt;
x[x%%3 == 0]  # c(3, 6, 9)&lt;br /&gt;
x[c(1,5,10)]  # c(1,5,10)&lt;br /&gt;
x[12] = 12    # now x is c(1,2,3,4,5,6,7,8,9,10,NA,12)&lt;br /&gt;
seq(from=5,to=25,by=5)   # c(5,10,15,20,25)&lt;br /&gt;
sqrt(1:7)          # many built-in functions will automatically apply themselves to every element of a vector&lt;br /&gt;
sapply(1:7)  # apply the function sequentially to each element of the vector&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arrays==&lt;br /&gt;
An array is a multidimensional vector of same-typed elements.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; x = array(1:12, dim=c(3,4))&lt;br /&gt;
&amp;gt; x&lt;br /&gt;
[,1] [,2] [,3] [,4]&lt;br /&gt;
[1,]    1    4    7   10&lt;br /&gt;
[2,]    2    5    8   11&lt;br /&gt;
[3,]    3    6    9   12&lt;br /&gt;
&amp;gt; x[1,3]             # 7&lt;br /&gt;
&amp;gt; x[,3]              # c(7,8,9)&amp;gt; x[2:3,3]           # c(8,9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
A list is a heterogeneous collection of objects, each of which may be named.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
x = list(thing=&amp;quot;hat&amp;quot;, size=&amp;quot;8.25&amp;quot;)&lt;br /&gt;
x[1]                                      # &amp;quot;hat&amp;quot;&lt;br /&gt;
x$thing                                   # &amp;quot;hat&amp;quot;&lt;br /&gt;
x[[&amp;quot;thing&amp;quot;]]                              # &amp;quot;hat&amp;quot; &lt;br /&gt;
x[[&amp;quot;thin&amp;quot;]]                               # NULL &lt;br /&gt;
x[[&amp;quot;thin&amp;quot;, exact=FALSE]]                  # &amp;quot;hat&amp;quot;, search on substring match &lt;br /&gt;
&amp;gt; nl = list(first=x,second=y)&lt;br /&gt;
&amp;gt; nl$first$thing                          # &amp;quot;hat&amp;quot;&lt;br /&gt;
&amp;gt; nl[[c(&amp;quot;first&amp;quot;, &amp;quot;thing&amp;quot;)]]               # &amp;quot;hat&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Factors and Levels==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eye.colors = factor(c(&amp;quot;brown&amp;quot;, &amp;quot;blue&amp;quot;, &amp;quot;blue&amp;quot;, &amp;quot;green&amp;quot;, &amp;quot;brown&amp;quot;, &amp;quot;brown&amp;quot;, &amp;quot;brown&amp;quot;))&lt;br /&gt;
levels(eye.colors)     # &amp;quot;blue&amp;quot;  &amp;quot;brown&amp;quot; &amp;quot;green&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Shingles==&lt;br /&gt;
A shingle is a generalization of a factor to a continuous variable. A shingle consists of a numeric vector and a set of intervals. The intervals are allowed to overlap (much like roof shingles, hence the name shingles).&lt;br /&gt;
&lt;br /&gt;
==Data Frames==&lt;br /&gt;
A &amp;#039;&amp;#039;data frame&amp;#039;&amp;#039; is a list that contains multiple named vectors that are the same length, like a database table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; teams &amp;lt;- c(&amp;quot;PHI&amp;quot;,&amp;quot;NYM&amp;quot;,&amp;quot;FLA&amp;quot;,&amp;quot;ATL&amp;quot;,&amp;quot;WSN&amp;quot;)&lt;br /&gt;
&amp;gt; w &amp;lt;- c(92, 89, 94, 72, 59)&lt;br /&gt;
&amp;gt; l &amp;lt;- c(70, 73, 77, 90, 102)&lt;br /&gt;
&amp;gt; nleast &amp;lt;- data.frame(teams,w,l)&lt;br /&gt;
&amp;gt; nleast&lt;br /&gt;
teams  w   l&lt;br /&gt;
1   PHI 92  70&lt;br /&gt;
2   NYM 89  73&lt;br /&gt;
3   FLA 94  77&lt;br /&gt;
4   ATL 72  90&lt;br /&gt;
5   WSN 59 102&lt;br /&gt;
nleast$w               # c(92, 89, 94, 72, 59)&lt;br /&gt;
nleast$w[nleast$teams == &amp;quot;FLA&amp;quot;]  # 94&lt;br /&gt;
cbind (df1, df2)       # combine two dataframes into one by adding columns&lt;br /&gt;
rbind(df1, df2)        # combine two dataframes into one by adding rows&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Models and Formulas==&lt;br /&gt;
A linear model may be expressed as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
y ~ x1 + x2 + ... + xn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which is a formula object.  Example of linear model using built-in &amp;quot;cars&amp;quot; data set:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; cars.lm &amp;lt;- lm(formula=dist~speed,data=cars)&lt;br /&gt;
&amp;gt; cars.lm&lt;br /&gt;
Call:&lt;br /&gt;
lm(formula = dist ~ speed, data = cars)&lt;br /&gt;
Coefficients:&lt;br /&gt;
(Intercept)        speed  &lt;br /&gt;
 -17.579        3.932&lt;br /&gt;
&amp;gt; summary(cars.lm)     # shows lots more details&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
y ~ x1+x2+x3        # y is a linear function of x1, x2, and x3&lt;br /&gt;
y ~ x1+x2+x3+0      # y is a linear combination of x1, x2, and x3 with no intercept&lt;br /&gt;
y ~ x1+x2 | x3      # y is a linear function of x1 and x2 conditioned on x3&lt;br /&gt;
y ~ I(x1+x2)        # y is a linear function of a single variable (x1+x2)&lt;br /&gt;
y ~ (x1+x2)*x3      # equivalent to y ~ x1+x2+x3+I(x1*x2)+I(x2*x3)&lt;br /&gt;
y ~ (x1+x2)^2       # equivalent to y ~ (x1+x2)*(x1+x2)&lt;br /&gt;
y ~ log(x1)+sin(x2) # can incorporate simple functions&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myFunc = function(x,y) { c(x+1, y+1) }&lt;br /&gt;
myFunc(2,3) # c(3,4)&lt;br /&gt;
myFunc # function(x,y){c(x+1,y+1)}&lt;br /&gt;
timethis &amp;lt;- function(...) {  # the &amp;quot;...&amp;quot; takes an arbitrary list of arguments and passes them on&lt;br /&gt;
   start.time &amp;lt;- Sys.time();&lt;br /&gt;
   eval.parent(...);         # accesses a function from the parent environment&lt;br /&gt;
   print(Sys.time() - start.time);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;gt; addemup &amp;lt;- function(x,...) {&lt;br /&gt;
+    args &amp;lt;- list(...)&lt;br /&gt;
+    for (a in args) x &amp;lt;- x + a&lt;br /&gt;
+    return(x)&lt;br /&gt;
+ }&lt;br /&gt;
&amp;gt; addemup(1,1)             # 2&lt;br /&gt;
&amp;gt; addemup(1,2,3,4,5)       # 15&lt;br /&gt;
&lt;br /&gt;
assigns.x &amp;lt;- function(i) {x &amp;lt;&amp;lt;- i}  # assigns the variable x in the parent environment&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Dates==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
as.Date(&amp;quot;2009-09-08&amp;quot;) + 7     # &amp;quot;2009-09-15&amp;quot;&lt;br /&gt;
today = Sys.Date()&lt;br /&gt;
format(today, &amp;quot;%m/%d/%Y&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Time Series==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; ts(1:8,start=c(2008,2),frequency=4)&lt;br /&gt;
  Qtr1 Qtr2 Qtr3 Qtr4&lt;br /&gt;
2008         1    2    3&lt;br /&gt;
2009    4    5    6    7&lt;br /&gt;
2010    8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Environments==&lt;br /&gt;
An environment consists of the set of symbols that have been defined. A function body, list, or data frame contains its own environment.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
example.list &amp;lt;- list(a=1, b=2, c=3)&lt;br /&gt;
with(example.list, a+b+c) # 6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Classes ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; setClass(&amp;quot;TimeSeries&amp;quot;,&lt;br /&gt;
+   representation(&lt;br /&gt;
+     data=&amp;quot;numeric&amp;quot;,&lt;br /&gt;
+     start=&amp;quot;POSIXct&amp;quot;,&lt;br /&gt;
+     end=&amp;quot;POSIXct&amp;quot;&lt;br /&gt;
+   )&lt;br /&gt;
+ )&lt;br /&gt;
&lt;br /&gt;
&amp;gt; my.TimeSeries &amp;lt;- new(&amp;quot;TimeSeries&amp;quot;,&lt;br /&gt;
+    data=c(1,2,3,4,5,6),&lt;br /&gt;
+    start=as.POSIXct(&amp;quot;07/01/2009 0:00:00&amp;quot;,tz=&amp;quot;GMT&amp;quot;, format=&amp;quot;%m/%d/%Y %H:%M:%S&amp;quot;),&lt;br /&gt;
+    end=as.POSIXct(&amp;quot;07/01/2009 0:05:00&amp;quot;,tz=&amp;quot;GMT&amp;quot;, format=&amp;quot;%m/%d/%Y %H:%M:%S&amp;quot;)&lt;br /&gt;
+ )&lt;br /&gt;
&lt;br /&gt;
&amp;gt; setValidity(&amp;quot;TimeSeries&amp;quot;,&lt;br /&gt;
+    function(object) {&lt;br /&gt;
+      object@start &amp;lt;= object@end &amp;amp;&amp;amp;&lt;br /&gt;
+      length(object@start) == 1 &amp;amp;&amp;amp;&lt;br /&gt;
+      length(object@end) == 1&lt;br /&gt;
+    }&lt;br /&gt;
+  )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Scott</name></author>
	</entry>
</feed>