Creating Vectors; Indexing Vectors

Our code from class can be downloaded here: Code-Day05.R.

Vector Creation

We began with a review of basic assignment via the <- operator and the seq() and c() functions. Introduced the rep() function.

# returns a new vector which repeats
# the vector pi ten times

rep(x = pi, times = 10)

# returns a new vector which repeats the 
# 26 letters of the alphabet 2 respectively

rep(x = letters, each = 2)
Random Vectors

Are contains a number of built-in functions for the creation of (quasi-) random vectors.

# a vector of 100 normally distributed numbers
# with mean 0 and standard deviation of 1

rnorm(n = 100, mean = 0, sd = 1) 

# a vector of 100 uniformly distributed numbers
# on the interval from 0 to 1

runif(n = 100, min = 0, max = 1)

# a vector of 100 random number following the 
# chi-square distribution  with 15 degrees
# of freedom

rchisq(n = 10, df = 15)

# a vector of 99 random numbers following the
# student t distribution with 5 degrees 
# of freedom

rt(n = 99, df = 5)
Sampling

The sample() function allows us to generate vectors by drawing random samples from some target vector (or matrix). The code below, simulates a dice roll.


Dice <- c(1, 2, 3, 4, 5, 6)

# draws a sample of size 1 from the target vector: Dice

sample(x = Dice, size = 1)

The code below simulates 10 coin tosses.

Coin <- c("Heads", "Tails")

# draws a sample of size 10 with replacement
# from the target vector: Coin

sample(x = Coin, size = 10, replace = TRUE)

Indexing

To extract individual elements or sub-vectors from a vector the [] notation can be used. Numbers of a vector of numbers supplied inside of the [] will instruct R to extract the objects located at the supplied position inside of the vector.

# extracts the element at position 26 of the vector letters
# will return "z"

letters[26] 

# will return "h"

letters[8]

# will return vector containing "h" and "z"

letters[c(8, 26)]

# will return vector containing "a", "b", and "c" 

letters[1:3]

# will return letter "i"

letters[8+1] 

# will return "d"

Fourth_letter <- 4

letters[Fourth_letter]

# will return vector of length 24 containing 
# all letters except "a" and "h"

letters[-c(1,8)]

Last but not least we discussed the which() function which returns a vector of index locations meeting a logical condition.

# evaluates to 8 and 17

which(letters == "h" | letters == "q")