In this lab you can use the interactive console to explore or Knit the document. Remember anything you type here can be “sent” to the console with Cmd-Enter (OS-X) or Ctrl-Enter (Windows/Linux) in an R code chunk.

Part 1

1.1

Create a new object called my.num that contains 6 numbers.

# General format
my.num <- c(number1, number2, ...)
my.num <- c(5, 4, 7, 8, 12, 14) # These can be any real numbers

1.2

Multiply my.num by 4.

my.num * 4
## [1] 20 16 28 32 48 56

1.3

Create a second object called my.char that contains 5 character strings.

# General format
my.char <- c("character1", "character2", ...)
my.char <- c("banana", "garlic", "pickles", "hot chocolate", "7-Up") # Again,these can be anything

1.4

Combine the two objects my.num and my.char into an object called both.

both <- c(my.num, my.char)

1.5

What is the length of both? Use the length() function.

length(both)
## [1] 11

1.6

What class is both?

class(both)
## [1] "character"

1.7

Divide both by 3, what happens?

both / 3
## Error in both/3: non-numeric argument to binary operator

Practice on Your Own!

P.1

Create a vector that contains 4 sets of the numbers 1, 2, 3, and 4.

vec_1 <- c(1, 2, 3, 4)
vec_2 <- c(vec_1, vec_1, vec_1, vec_1)

Part 2

2.1

Create a vector with elements 1, 2, 3, 4, 5 and call it x.

# General format
x <- c(...)
x <- c(1, 2, 3, 4, 5)

2.2

Create another vector with elements 10, 20, 30, 40, 50 and call it y.

# General format
y <- c(...)
y <- c(10, 20, 30, 40, 50)

2.3

Determine the length of x and y. Next, add the vectors x and y together.

length(x)
## [1] 5
length(y)
## [1] 5
x + y
## [1] 11 22 33 44 55
# [1] 11 22 33 44 55

2.4

Append the value 60 onto the vector y (hint: you can use the c() function).

# General format
y <- c(y, ...)
y <- c(y, 60)

2.5

Determine the length of x and y.

length(x)
## [1] 5
length(y)
## [1] 6

2.6

Add x and y together. What happens?

x + y
## Warning in x + y: longer object length is not a multiple of shorter object
## length
## [1] 11 22 33 44 55 61
# [1] 11 22 33 44 55 61
# Warning message:
# In x + y : longer object length is not a multiple of shorter object length
# R "auto replicates" the shorter vector when the vectors aren't the same length - this is not what we want!
# In this case, it reads x as c(1, 2, 3, 4, 5, 1)!

Practice on Your Own!

P.2

Multiply the following a and b together. How is this similar to the way R performs addition in question 2.6 ?

a <- c(1, 2, 3)
b <- c(10, 100, 1000)
a * b
## [1]   10  200 3000
# R adds together the first element of each vector, then the second, and so on. This order also applies when multiplying!

Part 3

3.1

Create a vector object called int_vect that starts at 1 and goes up to 10. Use seq().

# General format
seq(from = NUMBER, to = NUMBER)
int_vect <- seq(from = 1, to = 10)
int_vect
##  [1]  1  2  3  4  5  6  7  8  9 10

3.2

Repeat the int_vect object this sequence 3 times using rep() and store the new object as int_vect_3.

# General format - times and each are optional
rep(x = OBJECT_TO_REPEAT, times = NUM_TIMES_TO_REPEAT, each = NUM_TIMES_TO_REPEAT_EACH_ELEMENT)
int_vect_3 <- rep(int_vect, times = 3)
int_vect_3
##  [1]  1  2  3  4  5  6  7  8  9 10  1  2  3  4  5  6  7  8  9 10  1  2  3  4  5
## [26]  6  7  8  9 10

3.3

What is the length of int_vect_3?

length(int_vect_3)
## [1] 30

3.4

Create a vector that takes the sequence “Strongly Agree”, “Agree”, “Neutral”, “Disagree”, “Strongly Disagree” and repeats each element 10 times.

my_seq <- c("Strongly Agree", "Agree", "Neutral", "Disagree", "Strongly Disagree")
rep(my_seq, each = 10)
##  [1] "Strongly Agree"    "Strongly Agree"    "Strongly Agree"   
##  [4] "Strongly Agree"    "Strongly Agree"    "Strongly Agree"   
##  [7] "Strongly Agree"    "Strongly Agree"    "Strongly Agree"   
## [10] "Strongly Agree"    "Agree"             "Agree"            
## [13] "Agree"             "Agree"             "Agree"            
## [16] "Agree"             "Agree"             "Agree"            
## [19] "Agree"             "Agree"             "Neutral"          
## [22] "Neutral"           "Neutral"           "Neutral"          
## [25] "Neutral"           "Neutral"           "Neutral"          
## [28] "Neutral"           "Neutral"           "Neutral"          
## [31] "Disagree"          "Disagree"          "Disagree"         
## [34] "Disagree"          "Disagree"          "Disagree"         
## [37] "Disagree"          "Disagree"          "Disagree"         
## [40] "Disagree"          "Strongly Disagree" "Strongly Disagree"
## [43] "Strongly Disagree" "Strongly Disagree" "Strongly Disagree"
## [46] "Strongly Disagree" "Strongly Disagree" "Strongly Disagree"
## [49] "Strongly Disagree" "Strongly Disagree"
rep(c("Strongly Agree", "Agree", "Neutral", "Disagree", "Strongly Disagree"), each = 10)
##  [1] "Strongly Agree"    "Strongly Agree"    "Strongly Agree"   
##  [4] "Strongly Agree"    "Strongly Agree"    "Strongly Agree"   
##  [7] "Strongly Agree"    "Strongly Agree"    "Strongly Agree"   
## [10] "Strongly Agree"    "Agree"             "Agree"            
## [13] "Agree"             "Agree"             "Agree"            
## [16] "Agree"             "Agree"             "Agree"            
## [19] "Agree"             "Agree"             "Neutral"          
## [22] "Neutral"           "Neutral"           "Neutral"          
## [25] "Neutral"           "Neutral"           "Neutral"          
## [28] "Neutral"           "Neutral"           "Neutral"          
## [31] "Disagree"          "Disagree"          "Disagree"         
## [34] "Disagree"          "Disagree"          "Disagree"         
## [37] "Disagree"          "Disagree"          "Disagree"         
## [40] "Disagree"          "Strongly Disagree" "Strongly Disagree"
## [43] "Strongly Disagree" "Strongly Disagree" "Strongly Disagree"
## [46] "Strongly Disagree" "Strongly Disagree" "Strongly Disagree"
## [49] "Strongly Disagree" "Strongly Disagree"

Practice on Your Own!

P.3

“Strongly Agree”, “Agree”, “Neutral”, “Disagree”, “Strongly Disagree” are often responses to surveys. Create a randomly sampled vector of 30 survey responses. (hint use sample() and set the replace argument to TRUE). Store the output as my_responses. Examine the data by typing the name my_responses in the Console.

my_responses <- sample(
  x = c("Strongly Agree", "Agree", "Neutral", "Disagree", "Strongly Disagree"),
  size = 30,
  replace = TRUE
)
my_responses
##  [1] "Agree"             "Disagree"          "Strongly Disagree"
##  [4] "Agree"             "Agree"             "Strongly Agree"   
##  [7] "Agree"             "Agree"             "Disagree"         
## [10] "Strongly Agree"    "Strongly Disagree" "Agree"            
## [13] "Strongly Agree"    "Neutral"           "Strongly Agree"   
## [16] "Agree"             "Neutral"           "Neutral"          
## [19] "Neutral"           "Agree"             "Strongly Disagree"
## [22] "Neutral"           "Strongly Disagree" "Agree"            
## [25] "Disagree"          "Disagree"          "Strongly Disagree"
## [28] "Strongly Disagree" "Strongly Agree"    "Disagree"

P.4

Let’s say you change your survey so participants can rank their response 1-10 (inclusive). Create a randomly sampled vector of 30 survey responses. (hint use seq() and sample() and set the replace argument to TRUE). Store the output as my_responses_2. Examine the data by typing the name my_responses_2 in the Console.

my_responses_2 <- sample(
  x = seq(from = 1, to = 10),
  size = 30,
  replace = TRUE
)