Lab 1: Getting Started With R |
Here are some examples of basic R commands that you will find useful. Try typing them into an R command window (each command followed by Enter/Return). If you get an error message of the form "Error: Object not found", it may be because you skipped an earlier example which created the object, or because you mis-spelled the name of the object. Object names in R are case sensitive: x is not the same as X. Names must start with a letter, but can include numbers, ".", and "_".
It is helpful to create datasets with informative names: "FluDeaths" rather than "fd".
n <- 1:10 # integer sequences
n
x <- seq(1,2,.1) # other sequences
x
# direct data entry
z <- c(2.3, 1.2, 4.4, 4.7, -1.2, 6.3)
z
u <- runif(10) # generate 10 random numbers in (0,1).
u
y <- n+z # add two datasets to create a third
y
Colors <- c("red", "orange", "yellow", "green","blue", "violet")
Colors
MoreColors <- rep(Colors,3) # repeated values
MoreColors
1+1 3^2 8*2-3^2R has the standard mathematical functions:
sqrt(81) cos(pi) # pi is an R constant log(10) # natural log log(1) exp(log(1))
Colors
Colors[2] # case selection by subscript
Colors[c(1,3,5)]
# case selection by logical comparison
N <- 1:20
N > 10
N[N > 10]
which(MoreColors == "blue")
N <- 1:10 N 2*N N^2
help(mean) # ask for help!! ?median u <- runif(10) u sort(u) mean(u) median(u) max(u) min(u) sum(u)
test=function(a,b) # start of function definition
{
# body of the function
a^2-b^2 # the last command is the value returned
} # end of function is here
test(3,2)
test(3,0)
test(0,2)
For the CS crowd, here's an example of recursion:
Fact <- function(n)
{
if(n < 0) stop("n must be non-negative")
if(n == 0) return(1)
n*Fact(n-1)
}
Fact(4)
Fact(-1)
#
# what's happening here?
Fact(3/2)
x <- rnorm(50) y <- x + rnorm(50)/3 hist(x,col="yellow") plot(x,y,pch=19,col="blue")
help(data) data() data(co2) help(co2) plot(co2) # plot the time-series plot(co2,col="red")
MyDataFrame <- read.table("~/Desktop/MyData.dat",header=T)
FL <- read.csv("http://people.reed.edu/~jones/141/FL.dat")
x <- seq(1,2,.2)
x # numeric
a <- c("a","a","b","b","c","c")
a # character data
b <- factor(a)
b # factor: a coded categorical dataset
X <- data.frame(x,b)
X # data frame: a table of data
# rows are cases, columns are variables
X[1,]
X[,1]
X[X[,2] == "a",]
# select the rows for which column 2 is "a"
FL <- read.csv("http://people.reed.edu/~jones/141/FL.dat")
names(FL)
plot(Buchanan~Bush,data=FL,pch=19)
# or
with(FL,plot(Bush,Buchanan,pch=19,col="blue"))
# or
attach(FL)
plot(Bush,Buchanan,pch=19,col="blue")
identify(Bush,Buchanan,row.names(FL))
# click on points! "esc" to exit
### log scale
plot(log(Buchanan)~log(Bush),data=FL,pch=19,col="darkgreen")
title("Florida 2000 by County")
FL.lm <- lm(log(Buchanan)~log(Bush),data=FL)
abline(coef(FL.lm),col="red",lwd=2)
which(row.names(FL)=="PalmBeach")
symbols(log(Bush)[50],log(Buchanan)[50],circles=.2,
inches=FALSE,add=TRUE)