R Programming/Sample Session
This page is an introduction to the R programming language. It shows how to perform very simple tasks using R. First you need to have R installed (see the Settings page). If you use Windows or Mac OS, the easiest solution is to use the R Graphical User Interface (click on its icon). If you use Linux, open a terminal and type R at the command prompt.
Usually when you open R, you see a message similar to the following in the console:
R version 2.11.1 (2010-05-31) Copyright (C) 2010 The R Foundation for Statistical Computing ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. [Previously saved workspace restored] >
You can type your code after the angle bracket >.
R can be used as a simple calculator and we can perform any simple computation.
> # Sample Session > # This is a comment > > 2 # print a number [1] 2 > 2+3 # perform a simple calculation [1] 5 > log(2) [1] 0.6931472
We can also store numeric or string objects.
> x <- 2 # store an object > x # print this object [1] 2 > (x <- 3) # store and print an object [1] 3 > > x <- "Hello" # store a string object > x [1] "Hello"
We can also store vectors.
> Height <- c(168, 177, 177, 177, 178, 172, 165, 171, 178, 170) #store a vector > Height # print the vector [1] 168 177 177 177 178 172 165 171 178 170 > > Height[2] # Print the second component [1] 177 > Height[2:5] # Print the second, the 3rd, the 4th and 5th component [1] 177 177 177 178 > > (obs <- 1:10) # Define a vector as a sequence (1 to 10) [1] 1 2 3 4 5 6 7 8 9 10 > > Weight <- c(88, 72, 85, 52, 71, 69, 61, 61, 51, 75) > > BMI <- Weight/((Height/100)^2) # Performs a simple calculation using vectors > BMI [1] 31.17914 22.98190 27.13141 16.59804 22.40879 23.32342 22.40588 20.86112 [9] 16.09645 25.95156
We can also describe the vector with length(), mean() and var().
> length(Height) [1] 10 > mean(Height) # Compute the sample mean [1] 173.3 > var(Height) [1] 22.23333
We can also define a matrix.
> M <- cbind(obs,Height,Weight,BMI) # Create a matrix > typeof(M) # Give the type of the matrix [1] "double" > class(M) # Give the class of an object [1] "matrix" > is.matrix(M) # Check if M is a matrix [1] TRUE > is.vector(M) # M is not a vector [1] FALSE > dim(M) # Dimensions of a matrix [1] 10 4
We can plot the data using plot().
> plot(Height,Weight,ylab="Weight",xlab="Height",main="Corpulence")
We can define a dataframe.
> mydat <- data.frame(M) # Creates a dataframe > names(mydat) # Give the names of each variable [1] "obs" "Height" "Weight" "BMI" > str(mydat) # give the structure of your data 'data.frame': 10 obs. of 4 variables: $ obs : num 1 2 3 4 5 6 7 8 9 10 $ Height: num 168 177 177 177 178 172 165 171 178 170 $ Weight: num 88 72 85 52 71 69 61 61 51 75 $ BMI : num 31.2 23 27.1 16.6 22.4 ... > > View(mydat) # Look at your data > > summary(mydat) # Descriptive Statistics obs Height Weight BMI Min. : 1.00 Min. :165.0 Min. :51.00 Min. :16.10 1st Qu.: 3.25 1st Qu.:170.2 1st Qu.:61.00 1st Qu.:21.25 Median : 5.50 Median :174.5 Median :70.00 Median :22.70 Mean : 5.50 Mean :173.3 Mean :68.50 Mean :22.89 3rd Qu.: 7.75 3rd Qu.:177.0 3rd Qu.:74.25 3rd Qu.:25.29 Max. :10.00 Max. :178.0 Max. :88.00 Max. :31.18 >
You can save an R session (all the objects in memory) and load the session.
> save.image(file="~/Documents/Logiciels/R/test.rda") > load("~/Documents/Logiciels/R/test.rda")
We can define a working directory. Note for Windows users : R uses slash ("/") in the directory instead of backslash ("\").
> setwd("~/Desktop") # Sets working directory (character string enclosed in "...") > getwd() # Returns current working directory [1] "/Users/username/Desktop" > dir() * Lists the content of the working directory
There are some special characters in R
- NA : Not Available (ie missing values)
- NaN : Not a Number (eg 0/0)
- Inf: Infinity
- -Inf : Minus Infinity.
For instance 0 divided by 0 gives a NaN but 1 divided by 0 gives 
> 0/0 [1] NaN > 1/0 [1] Inf
We can exit R using q(). The no argument specifies that the R session is not saved.
q("no")