## Wednesday, November 9, 2011

### R quick reference

1. Help and demos.
The home page of R is http://www.r-project.org
type help.start() to use a browser to view standard documentation
type demo() to view demos of the capabilities of R.
type ?topic to view manual pages of an R function or library.

2. To recover last computed expression in R:
Use the special variable .Last.value

3. How do I display floating point number to a specified number of digits?
options(digits = 10)
when you want finer control, you may use sprintf("%.nf", value) where n must be replaced by
the numerical value of the number of digits.

4. Creating sequences.
X <- seq(1,100) X <- seq(1, 100, by = 3) X <- seq(1, 100, length=5) Note that the spacing in sequence X is given w = (endvalue, startvalue)/(length - 1).
5. What are the elementary operations on sequences or vectors.
All variables in R are vectors! Two vector operands are first set to the same length,
recycling elements if necessary.

Arithmetic operations +, -, *, / works pairwise.
Functions or operations applied to a vector result in new vector.
X^2 gives a new vector with the square of the elements in original X.
X*X gives the same results!

6. To determine the number of elements in a vector
length(X)
7. To extract the kth element(indexing starts at 1)
X[k]
8. To return a vector with the kth element deleted.
X[-k]
9. To return a vector with some elements deleted.
X[-c(1,3, 5)] will delete the elements at the first, third and fifth position.
To repeat a vector.
rep(X, ntimes) will return a new vector repeated ntimes.
X <-c(1,2) rep(X, 5) will display  1 2 1 2 1 2 1 2 1 2
10. To concatenate two or more vectors
c(X,Y, Z)
11. To compute the product of all elements in a vector.
prod(X)
12. To assign an element v at a specific position k.
X[k] <- v Not that if k is greater than length of X, X will be enlarged! To filter elements of X meeting a condition. X[condition] For example, X[X > 5] will display a new vector with element values > 5.

To sum all elements in a vector
sum(X)
To sort a vector
sort(X)

13. How do you mark lines as comments in R?
Start each line (leading spaces are ignored) with a #.

14. How do I edit a user defined function definition?

Method 1. use fix(function_name)

You mispelled length(X):

gm <- function(X){ exp(sum(log(X))/lenggth(X)) } use fix(gm). edit the offending line and save file. Now type gm. The erroneous definition now has been saved! Method 2. use edit(function_name) Type gm <- edit(gm) This has the same behavior as fix. Method 3. body(function_name)) for one line definitions, this may work out well from the command line. body(gm) <- expression({exp(sum(log(X))/length(X))}) Method 4. as.list(body(function_name))) for multiline definitions, use as.list, taking into note that the line 1 is always the starting {. Hence the first line of the function is body(function_name[]. To change a specific line, body(function_name[[line#+1]] <- substitute(newexpression). Reference:http://stackoverflow.com/questions/2458013/what-ways-are-there-to-edit-a-function-in-r
15. What are reserved variables in R?
Do not use c, t, q, F, T

16. In conditional tests, what are the available comparison operators?
!expr NOT
>,<, != inequalities = equality
17. Does R provide bitwise operators?
bitAnd(a, b)
bitOr (a, b)
bitXor(a, b)

All functions above works on 32 bitwide unsigned integers

18. What are the available programming control structures in R?
conditional if
if (condition) expr
conditional if-else
if (cond) expr1 else expr2

switch
switch(expr, ...)

ifelse
ifelse(test,yes,no)

looping constructs and cotrol statements:
for (var in seq) expr
while (cond) expr
repeat expr
break
next

19. How do I input a program or data file to R?
source(filename)

20. How do I redirect output to a file from R?
sink(outfilename)

21. What are the functions for handling libraries or packages?
library() # list all available packages
library(lib.loc = .Library) # list all packages in the default library
library(help = splines) # documentation on package 'splines'
library(splines) # load package 'splines'
require(splines) # the same
search() # "splines", too
detach("package:splines")

22. How do I install contributed packages?
install.packages() interactive install
install.packages(pkgname) install a specified package.
remove.packages(pkgname) removes a package

library() # list all available packages
library(lib.loc = .Library) # list all packages in the default library
library(help = splines) # documentation on package 'splines'
library(splines) # load package 'splines'
require(splines) # the same
search() # "splines", too
detach("package:splines")

Standard repositories are "http://cran.r-project.org"and its mirror site
http://lib.stat.cmu.edu/R/CRAN.

You should be root to install the libraries systemwide.