Creating Vectors

In class today, I distributed the prompt for Problem Set 1. A digital version can be accessed here: ProblemSet1.pdf.

Vector Creation

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

# returns a new vector which repeats
# the vector letters two times
# the output itself is a vector of length 52 (i.e., 26x2)

rep(x = letters, times = 2)

# consider also the each argument 
# it returns a new vector which repeats the 
# 26 letters of the alphabet twice respectively
# try it out and compare to the above 

rep(x = letters, each = 2)

Another useful function to create vectors is: seq(). The seq() function accepts three arguments:

  1. from
  2. to
  3. by or length.out

It is used to create sequences from some starting point to some end point in increments one can specify with by.

x <- seq(from = 0, to = 3, by = 0.5) # this creates a vector
                                     # it is of length 7
                                     # and contains the values: 0.0,
                                     # 0.5, 1.0, 1.5, 2.0, 2.5, and
                                     # 3.0

Alternatively you can create a sequence of a pre-specified length – say 5 – and let R figure out the correct increments.

y <- seq(from = 0, to = 3, length.out = 5) # this creates a vector
                                           # it is of length 5
                                           # and contains the values:
                                           # 0.00, 0.75, 1.50, 2.25, 
                                           # and 3.00
Random Vectors

R 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)