1. FizzBuzz Question

set.seed(1000)
x = sample(1:100,20,replac=TRUE) #a random vector that will serve as input

#function fizz
fizz <- function(n){
  #create an empty vector
  v <- vector()
  
  #loop over all the elements
  for(i in n){
    if(as.integer(i)%%3 == 0)
      v <- c(v,"Fizz") #fizz if divisible by 3
    else
      v <- c(v,"")
  }
  v #return v
}

Q2 Buzz(n)

#fucntion buzz
buzz <- function(n){
  #create an empty vector
  v <- vector()
  
  #loop over all the elements
  for(i in n){
    if(as.integer(i)%%5 == 0)
      v <- c(v,"Buzz") #buzz if divisible by 5
    else
      v <- c(v,"")
  }
  v #return v
}

Q3

#function fizzbuzz
fizzbuzz <- function(n){
  #create an empty vector
  v <- vector()
  
  #loop over all the elements
  for(i in n){
    if(as.integer(i)%%3 == 0 & as.integer(i)%%5 == 0)
      v <- c(v,"FizzBuzz") #fizzbuzz if divisible by 3 and 5
    else if(as.integer(i)%%3 == 0)
      v <- c(v,"Fizz") #fizz if divisible by 3
    else if(as.integer(i)%%5 == 0)
      v <- c(v,"Buzz") #buzz if divisible by 5
    else
      v <- c(v,"")
  }
  v #return v
}

fizz(x) #call the function fizz
##  [1] ""     ""     ""     "Fizz" ""     ""     "Fizz" ""     "Fizz" ""    
## [11] "Fizz" ""     "Fizz" ""     ""     ""     ""     ""     "Fizz" ""
buzz(x) #call the function buzz
##  [1] ""     ""     ""     ""     ""     ""     ""     ""     ""     ""    
## [11] "Buzz" ""     ""     ""     ""     ""     ""     "Buzz" ""     ""
fizzbuzz(x) #call the function fizzbuzz
##  [1] ""         ""         ""         "Fizz"     ""         ""        
##  [7] "Fizz"     ""         "Fizz"     ""         "FizzBuzz" ""        
## [13] "Fizz"     ""         ""         ""         ""         "Buzz"    
## [19] "Fizz"     ""

Q4

fbr <- function(n, m) {
  result <- character()
  for (i in seq_along(n)) {
    result <- c(result, fizzbuzz(n[i]:m[i]))
  }
  return(result)
}


# Example usage
result <- fbr(10, 15)  # Generate the FizzBuzz sequence from 10 to 15
print(result)
## [1] "Buzz"     ""         "Fizz"     ""         ""         "FizzBuzz"

Basic Data Structures Question

# 1.

# Set seed for reproducibility
set.seed(1000)

# Create a vector x of 20 integers randomly drawn from all integers between 1 and 100
x <- sample(1:100, 20)

# Display the vector x
cat("Vector x:", x, "\n")
## Vector x: 68 43 86 51 88 29 61 18 22 45 38 33 41 95 26 58 55 93 37 97

2

# 2.

# Create a 20 × 3 matrix y with columns being the output of fizz(x), buzz(x), and fizzbuzz(x)
y <- matrix(NA, nrow = 20, ncol = 3)

# Fill in each column of y with the output of functions
y[, 1] <- sapply(x, fizz)
y[, 2] <- sapply(x, buzz)
y[, 3] <- sapply(x, fizzbuzz)

# Display the matrix y
cat("Matrix y:\n", y, "\n")
## Matrix y:
##     Fizz    Fizz  Fizz  Fizz      Fizz            Buzz    Buzz   Buzz       Fizz    Fizz  FizzBuzz  Fizz  Buzz   Buzz Fizz

3

# 3.

# Create an empty dataframe data with 20 rows and a single variable data$input
data <- data.frame(input = x)

# Display the dataframe structure
str(data)
## 'data.frame':    20 obs. of  1 variable:
##  $ input: int  68 43 86 51 88 29 61 18 22 45 ...
# 4.

# Assign data$input the values from vector x
data$input <- x

# Display the updated dataframe
print(data)
##    input
## 1     68
## 2     43
## 3     86
## 4     51
## 5     88
## 6     29
## 7     61
## 8     18
## 9     22
## 10    45
## 11    38
## 12    33
## 13    41
## 14    95
## 15    26
## 16    58
## 17    55
## 18    93
## 19    37
## 20    97

5

# Create variables data$fizz, data$buzz, and data$fizzbuzz as values from corresponding columns from matrix y
data$fizz <- y[, 1]
data$buzz <- y[, 2]
data$fizzbuzz <- y[, 3]

# Display the updated dataframe
print(data)
##    input fizz buzz fizzbuzz
## 1     68                   
## 2     43                   
## 3     86                   
## 4     51 Fizz          Fizz
## 5     88                   
## 6     29                   
## 7     61                   
## 8     18 Fizz          Fizz
## 9     22                   
## 10    45 Fizz Buzz FizzBuzz
## 11    38                   
## 12    33 Fizz          Fizz
## 13    41                   
## 14    95      Buzz     Buzz
## 15    26                   
## 16    58                   
## 17    55      Buzz     Buzz
## 18    93 Fizz          Fizz
## 19    37                   
## 20    97

6

# Create variable data$fbr as the output of the fbr() function applied to data$input
data$fbr <- fbr(data$input, data$input)

# Display the updated dataframe
print(data)
##    input fizz buzz fizzbuzz      fbr
## 1     68                            
## 2     43                            
## 3     86                            
## 4     51 Fizz          Fizz     Fizz
## 5     88                            
## 6     29                            
## 7     61                            
## 8     18 Fizz          Fizz     Fizz
## 9     22                            
## 10    45 Fizz Buzz FizzBuzz FizzBuzz
## 11    38                            
## 12    33 Fizz          Fizz     Fizz
## 13    41                            
## 14    95      Buzz     Buzz     Buzz
## 15    26                            
## 16    58                            
## 17    55      Buzz     Buzz     Buzz
## 18    93 Fizz          Fizz     Fizz
## 19    37                            
## 20    97