Quiz 2

This is Quiz 2 from Coursera’s R Programming class within the Data Science Specialization. This publication is intended as a learning resource, all answers are documented and explained. Datasets are available in R packages.


1. Suppose I define the following function in R

cube <- function(x, n) {
        x^3
}

cube(3)
## [1] 27

  • 27


Explanation:

Function cubes the input.


2. The following code will produce a warning in R.

x <- 1:10
if(x > 5) {
        x <- 0
}
## Warning in if (x > 5) {: the condition has length > 1 and only the first
## element will be used

Why?


  • ‘x’ is a vector of length 10 and ‘if’ can only test a single logical statement.


Explanation:

R will automatically use the first element of the vector.


3. Consider the following function

f <- function(x) {
        g <- function(y) {
                y + z
        }
        z <- 4
        x + g(x)
}

and then run

z <- 10
f(3)
## [1] 10

  • 10


Explanation:

Run it.


4. Consider the following expression:

x <- 5
y <- if(x < 3) {
        NA
} else {
        10
}
y
## [1] 10

  • 10


Explanation:

Run it.


5. Consider the following R function

h <- function(x, y = NULL, d = 3L) {
        z <- cbind(x, d)
        if(!is.null(y))
                z <- z + y
        else
                z <- z + f
        g <- x + y / z
        if(d == 3L)
                return(g)
        g <- g + 10
        g
}

  • f


6. What is an environment in R?


  • a collection of symbol/value pairs


7. The R language uses what type of scoping rule for resolving free variables?


  • lexical scoping

8. How are free variables in R functions resolved?


  • The values of free variables are searched for in the environment in which the function was defined


9. What is one of the consequences of the scoping rules used in R?
  • All objects must be stored in memory

10. In R, what is the parent frame?


  • It is the environment in which a function was called


Check out my website at: http://www.ryantillis.com/