Ch. 2, Q1

x <- c("economics", "econometrics", "ECON 4750")

library(stringr)

str_length(x)
## [1]  9 12  9

Ch. 2, Q3

Part a

fibonacci <- function(n) {
  
  # handle cases where n=1 or 2
  if (n == 1) {
    return(0)
  }
  
  if (n==2) {
    return(1)
  }
  
  # main code
  fib_seq <- c(0,1)
  
  for (i in 3:n) {
    fib_seq[i] <- fib_seq[i-1] + fib_seq[i-2]
  }
  
  fib_seq[n]
}
fibonacci(5)
## [1] 3
fibonacci(8)
## [1] 13

Part b

alt_seq <- function(a,b,n) {
  # handle cases where n=1 or 2
  if (n == 1) {
    return(a)
  }
  
  if (n==2) {
    return(b)
  }
  
  # main code
  this_seq <- c(a,b)
  
  for (i in 3:n) {
    this_seq[i] <- this_seq[i-1] + this_seq[i-2]
  }
  
  this_seq[n]
}
alt_seq(3,7,4)
## [1] 17

Ch. 2, Q5

Part a

nrow(iris)
## [1] 150

Part b

mean(iris$Sepal.Length)
## [1] 5.843333

Part c

mean(subset(iris, Species=="setosa")$Sepal.Width)
## [1] 3.428

Part d

sorted_iris <- iris[order(iris$Petal.Length),]
sorted_iris[1:10,]
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 23          4.6         3.6          1.0         0.2  setosa
## 14          4.3         3.0          1.1         0.1  setosa
## 15          5.8         4.0          1.2         0.2  setosa
## 36          5.0         3.2          1.2         0.2  setosa
## 3           4.7         3.2          1.3         0.2  setosa
## 17          5.4         3.9          1.3         0.4  setosa
## 37          5.5         3.5          1.3         0.2  setosa
## 39          4.4         3.0          1.3         0.2  setosa
## 41          5.0         3.5          1.3         0.3  setosa
## 42          4.5         2.3          1.3         0.3  setosa