| Table of Contents
| Function Reference
| Function Finder
| R Project |
PACKAGE MANAGEMENT
Sooner or later, you will probably want to modify or update your R
installation. Updating is simple. When a new version of R is released (about
every six months), just go to the R Project website, download it, and install
it as before. On a Windows machine, the new version will be added to your R
program folder, and a new shortcut icon will be placed on your desktop. You will
then be able to run either version of R by clicking the appropriate shortcut.
(I currenly have six different versions of R on the Windows XP machine in my office.
Don't ask me why. I don't have a good excuse for it.) On a Mac, the new version
will replace the old version in the Applications folder, and the icon in your
Dock will open the new version. In Linux I'm not sure what happens. I use the
package manager to do updates in Linux.
There are also an enormous number of extension packages for R that will add
new functionality. Before I get to those, let's see how you can tell what you've
already got. First, let's look at the search path again.
> search() # Windows; it's a tad different on a Mac
[1] ".GlobalEnv" "package:stats" "package:graphics"
[4] "package:grDevices" "package:utils" "package:datasets"
[7] "package:methods" "Autoloads" "package:base"
The search() function
shows you the packages that are started up by
default when you start R, and the order in which they are searched for commands
you issue or data objects you request. (The ".GlobalEnv" is your workspace.)
This is not a complete list of the installed packages, however. To see that, do
this.
> installed.packages() # once again, Windows output; a Mac is different
Package LibPath Version
base "base" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
boot "boot" "C:/PROGRA~1/R/R-27~1.1/library" "1.2-33"
class "class" "C:/PROGRA~1/R/R-27~1.1/library" "7.2-42"
cluster "cluster" "C:/PROGRA~1/R/R-27~1.1/library" "1.11.11"
codetools "codetools" "C:/PROGRA~1/R/R-27~1.1/library" "0.2-1"
datasets "datasets" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
foreign "foreign" "C:/PROGRA~1/R/R-27~1.1/library" "0.8-26"
graphics "graphics" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
grDevices "grDevices" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
grid "grid" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
KernSmooth "KernSmooth" "C:/PROGRA~1/R/R-27~1.1/library" "2.22-22"
lattice "lattice" "C:/PROGRA~1/R/R-27~1.1/library" "0.17-8"
MASS "MASS" "C:/PROGRA~1/R/R-27~1.1/library" "7.2-42"
methods "methods" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
mgcv "mgcv" "C:/PROGRA~1/R/R-27~1.1/library" "1.4-0"
nlme "nlme" "C:/PROGRA~1/R/R-27~1.1/library" "3.1-89"
nnet "nnet" "C:/PROGRA~1/R/R-27~1.1/library" "7.2-42"
rpart "rpart" "C:/PROGRA~1/R/R-27~1.1/library" "3.1-41"
spatial "spatial" "C:/PROGRA~1/R/R-27~1.1/library" "7.2-42"
splines "splines" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
stats "stats" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
stats4 "stats4" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
survival "survival" "C:/PROGRA~1/R/R-27~1.1/library" "2.34-1"
tcltk "tcltk" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
tools "tools" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
utils "utils" "C:/PROGRA~1/R/R-27~1.1/library" "2.7.1"
And there is more output than that, but I have not shown all of it. (And it may
be different under different OSes.) If you want information on one of these
packages, you can get it this way.
> packageDescription("MASS") # this output is from an OLD version
Bundle: VR
Priority: recommended
Contains: MASS class nnet spatial
Version: 7.2-42
Date: 2008-05-05
Depends: R (>= 2.4.0), grDevices, graphics, stats, utils
Suggests: lattice, nlme, survival
Author: S original by Venables & Ripley. R port by Brian Ripley
, following earlier work by Kurt Hornik
and Albrecht Gebhardt.
Maintainer: Brian Ripley
BundleDescription: Functions and datasets to support Venables and
Ripley, 'Modern Applied Statistics with S' (4th edition).
License: GPL-2 | GPL-3
URL: http://www.stats.ox.ac.uk/pub/MASS4/
Packaged: Mon May 5 06:06:09 2008; ripley
Package: MASS
Description: The main library and the datasets
Title: Main Package of Venables and Ripley's MASS
LazyLoad: yes
LazyData: yes
Built: R 2.7.1; i386-pc-mingw32; 2008-06-23 08:17:42; windows
-- File: C:/PROGRA~1/R/R-27~1.1/library/MASS/Meta/package.rds
I don't claim to understand all of that, but things you might want to know from
this output are version number and dependencies (i.e., what the MASS package
needs to find in order to work). Another way to get information is
to ask for help about the package.
> library(help="MASS")
This will give you all of the above information plus a list of new functions
and data sets that are contained in the package (in a new window if your OS is
Windows or Mac). If you decide you need to use functions in the package, you can
attach it to your search path like this.
> library("MASS") ### Note: require("MASS") also works
> search()
[1] ".GlobalEnv" "package:MASS" "package:stats"
[4] "package:graphics" "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods" "Autoloads"
[10] "package:base"
Notice the package is attached at position 2 in the search path, meaning it will
be searched immediately after the workspace. If you want it some place else, set
the "pos=" option to the desired position.
You can see the contents of the package, or any other attached package, as
follows (assuming the package you want to look at is in position 2 in the search
path).
> ls(pos=2)
[1] "abbey" "accdeaths" "addterm"
[4] "Aids2" "Animals" "anorexia"
[7] "area" "as.fractions" "bacteria"
[10] "bandwidth.nrd" "bcv" "beav1"
[13] "beav2" "biopsy" "birthwt"
[16] "Boston" "boxcox" "cabbages"
...
Only the first several lines of the output are reproduced here. Once you're
done with an attached package and, perhaps, want it removed from your search
path, you can do this.
> detach("package:MASS") ### Note: NOT package="MASS"
> search()
[1] ".GlobalEnv" "package:stats" "package:graphics"
[4] "package:grDevices" "package:utils" "package:datasets"
[7] "package:methods" "Autoloads" "package:base"
And it's gone!!
Sometimes attaching things to your search path causes conflicts, if there are
identically named objects in two or more attached items. You'll be warned, but
you may later want a reminder of what the conflicts were. Do this.
> conflicts() # your output may be different
[1] "prompt" "body<-" "kronecker" "q" "quit"
Here is what the help page says about this function: "conflicts reports on
objects that exist with the same name in two or more places on the search
path, usually because an object in the user's workspace or a package is
masking a system object of the same name. This helps discover unintentional
masking." So there you have it! :)
To find out what's available in the way of optional (not installed by the R
base installation) packages, go to
The R Project for Statistical Computing home page, and click the "CRAN"
link on the left side of the page under Download. (CRAN stands for Comprehensive R
Archive Network.) Pick a mirror site you feel comfortable with,
and when the mirror site page loads, scroll down until you find
something that says "Contributed extension packages" and click on it. I'm
looking at the page right now, and under "Available Packages" it
says: "Currently, the CRAN package repository features 7764 available packages."
So if I were you, I wouldn't plan on reading about all of them in one sitting!
(Two and a half years ago when I revised this page, it said 4634. So the number of
contributed R packages is growing explosively.)
Click "Table of available packages sorted by name" and
scroll down the page to the section of packages beginning with the letter U
(or click the letter U at the top of the page). One of the packages listed there
is called "UsingR". Click on it and some info about that package will be
displayed. This package supports the Verzani (2nd Ed.) textbook. Suppose you are
intrigued and want to install this package. In R, type this command.
> install.packages("UsingR")
--- Please select a CRAN mirror for use in this session ---
trying URL 'http://www.ibiblio.org/pub/languages/R/CRAN/bin/windows/contrib/2.7/UsingR_0.1-8.zip'
Content type 'application/zip' length 1432870 bytes (1.4 Mb)
opened URL
downloaded 1.4 Mb
package 'UsingR' successfully unpacked and MD5 sums checked
The downloaded packages are in
C:\Documents and Settings\kingw\Local Settings\Temp\RtmpGSgWbV\downloaded_packages
updating HTML package descriptions
>
You will be asked to select a CRAN mirror, and another window will
open with a list of available mirror sites, which looks like this (on my Mac).
Click on one close to you. (I just
chose NC.) In a few seconds the download and installation will begin. If
everything goes well, your R Console window will display messages similar to
those above, and when everything finishes, you'll be returned to the command
prompt. If you now ask for help...
> library(help="UsingR")
... a new window will open with the help page for this package. There you can
read about everything that has been added--mostly new data sets, but also some
new functions, including one called simple.z.test()
in the event you were
really tied up in knots about not having a z-test function. To use the new
package, add it to your search path, and away you go.
You can also update existing packages using the
update.packages()
function. And if you decide you really don't want some new package after all,
use the remove.packages() function.
(It's not a good idea to remove
packages that are installed in the R base installation.) The help pages for
these functions will tell you what you need to know to use them.
If you decide you want to write your own R package, there is an entire
manual devoted to it that came with your download (in the Docs folder). Or you
can find it online under the
Documentation Manuals link. It's called "Writing R Extensions."
[NOTE: Some sources say when you are installing packages that you should set
the option "dependencies=TRUE". I advise against this. I once tried this, and
before I got it stopped, I had 143 packages downloaded that I neither wanted
nor needed.]
revised 2016 January 13
| Table of Contents
| Function Reference
| Function Finder
| R Project |
|