EXERCISE 1 VECTOR

Author

Nur Adilah Safiah

EXERCISE 1

  1. Create a numeric variable ” num_var ” with the value “42.5”.

    num_var <- 42.5
  2. Create a character variable ” char_var ” with the value “R is fun!”.

    char_var <- "R is fun!"
  3. Print the data type ” char_var”

    class(char_var)
    [1] "character"
  4. Create a list ” student_info” with the following elements:

    1. “name”: “Mohammad Nasir Abdullah”
    2. “age”: 18
    3. ” grades”: a numeric vector with values “99, 100, 89”.
    student_info <- list(   
      name = "Mohammad Nasir Abdullah",   
      age = 18,   
      grade = c(99,100,89) 
      )
  5. Create a data frame “f_students” with the following columns

    1. “Name”: “John”, “Pablo”
    2. ” Age”: “22”, “30”
    3. “Grade”: “A”, “C”
    f_students <- data.frame(    
      name = c("John", "Pablo"),   
      age = c(22,30),   
      grade = c("A", "C")  
      )
  6. Create a numeric vector ” vec_num” with the values “5,10,15,20”.

    vec_num <- c(5,10,15,20)
  7. Extract the second and third elements from ” vec_num”.

    vec_num[c(2,3)]
    [1] 10 15
  8. Create a vector ” vec_seq” that contains a sequence of number from 1 to 10.

    vec_seq <- 1:10
  9. Create a vector ” vec_rand” with 5 random numbers between 1 and 100.

    vec_rand <- sample(1:100, size = 5)
  10. Create a character vector ” vec_char” with the values “apple”, “banana”, “cherry”.

    vec_char <- c("apple", "banana", "cherry")
  11. Use the substr() function to extract the first 3 characters from each elements of ” vec_char”.

    vec_char <- substr(vec_char, 1,3)
  12. Create a character vector ” vec _colors” with the values “red”, “blue”, “green”, “red”, “blue”.

    vec_colors <- c("red", "blue", "green", "red", "blue")
  13. Convert ” vec_colors” into a factor vector ” factor_colors”.

    factor_colors <- as.factor(vec_colors)
  14. Print the levels of “factor_colors”.

    print(factor_colors)
    [1] red   blue  green red   blue 
    Levels: blue green red
  15. Given a numeric vector ” vec_bonus = c(10,20,30,40,50) “, write a code snippet to :

    1. Extract all elements greater than 25.

      vec_bonus <- c(10, 20, 30, 40, 50)  
      vec_bonus[vec_bonus > 25]
      [1] 30 40 50
    2. Calculate the mean of the extracted elements.

    extract <- vec_bonus[vec_bonus > 25]  
    mean(extract)
    [1] 40
  16. Given the following vectors:

    weights ‹- c(55, 68, 72, 61, 58, 75, 64, 70)

    names ‹- c(“Alice”, “Bob”, “Charlie”, “Daisy”, “Eve”, “Frank”, “Grace”, “Henry”)

    weights <- c(55, 68, 72, 61, 58, 75, 64, 70)  
    names <- c("Alice", "Bob", "Charlie", "Daisy", "Eve", "Frank", "Grace", "Henry")
    1. Identify the names of individuals whose weight is greater than 65kg.

      names[weights > 65]
      [1] "Bob"     "Charlie" "Frank"   "Henry"  
    2. Find the average weight of individuals weighting less than or equal to 60kg.

      mean(weights[weights<=60])
      [1] 56.5
    3. Extract the weights of individuals whose names start with the letter ‘A’ or ‘D’.

      weights[substr(names,1,1) %in% c("A","D")]
      [1] 55 61
    4. Determine the number of individuals whose weight is between 60kg and 70kg (inclusive).

      sum(weights >= 60 & weights <= 70)
      [1] 4
  17. Given the following vector of daily temperatures (in Celsius) for a week:

    temperatures <- c(22, 25, 19, 21, 18, 24, 23) 
    days <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")

    a. Identify the days when the temperature was below 20°C.

    days[temperatures < 20]
    [1] "Wednesday" "Friday"   

    b. Calculate the difference between the highest and lowest temperatures of the week.

    max(temperatures) - min(temperatures)
    [1] 7

    c. Determine the number of days when the temperature was between 20°C and 24°C (inclusive).

    sum(temperatures >= 20 & temperatures <= 24)
    [1] 4
  18. Given the following vector of exam scores:

    scores <- c(85, 78, 92, 65, 88, 70, 95, 80, 60, 90) 
    students <- c("Anna", "Ben", "Cara", "Dan", "Ella", "Finn", "Grace", "Hank", "Ivy", "Jay")
  1. Identify the students who scored above 90.

    students[scores > 90]
    [1] "Cara"  "Grace"
  2. Find the average score of students who scored below 80.

    mean(scores[scores < 80])
    [1] 68.25
  3. Extract the scores of students whose names start with a vowel (A, E, I, O, U)

    scores[substr(students, 1, 1) %in% c("A", "E", "I", "O", "U")]
    [1] 85 88 60

Take Home Exercise

  1. Basic Vector Creation: Create a numeric vector containing the numbers from 10 to 20 and a character vector containing the days of the week. Display both vectors.

    num_vector <- 10:20
    num_vector
     [1] 10 11 12 13 14 15 16 17 18 19 20
    days_vector <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
    days_vector
    [1] "Monday"    "Tuesday"   "Wednesday" "Thursday"  "Friday"    "Saturday" 
    [7] "Sunday"   
  2. Vector Concatenation: Given two vectors: a ‹- c(1, 2, 3) and b ‹- c(4, 5, 6), concatenate them to form a single vector.

    a <- c(1, 2, 3)
    b <- c(4, 5, 6)
    
    combine <- c(a, b)
  3. Element Extraction: Given the vector temperatures ‹- c(15, 18, 20, 22, 19, 17, 16), extract the temperatures for the 2nd, 4th, and 6th days.

    temperatures <- c(15, 18, 20, 22, 19, 17, 16)
    temperatures[c(2, 4, 6)]
    [1] 18 22 17
  4. Omitting Elements: From the same temperatures vector, omit the temperature of the 5th day.

    temperatures[-5]
    [1] 15 18 20 22 17 16
  5. Vector Arithmetic: Given the vector prices ‹- c(10, 20, 30, 40, 50), calculate the new prices after a 10% discount.

    prices <- c(10, 20, 30, 40, 50)
    prices * 0.9
    [1]  9 18 27 36 45
  6. Patterned Vectors: Create a vector that contains the numbers from 5 to 50, but only includes every 5th number (i.e., 5, 10, 15,…).

    vec_num <- seq(5,50, by =5)
  7. Random Patterns: Simulate the results of rolling a 6-sided die 10 times.

    dice <- sample(1:6, size = 10, replace = TRUE)
  8. Character Vector Onerations: Given the vector fruits <- c(“apple”, “banana”, “cherry”), extract the first three letters of each fruit.

    fruits <- c("apple", "banana", "cherry")
    substr(fruits, 1, 3)
    [1] "app" "ban" "che"
  9. Logical Vector Filtering: Given the vector ages ‹- c(25, 30, 35, 40, 45, 50), identify which ages are greater than 30 and less than 50.

    ages <- c(25, 30, 35, 40, 45, 50)
    ages[ages > 30 & ages < 50]
    [1] 35 40 45
  10. Relational Operators with Vectors: Given two vectors: vector1 ‹- c(5, 10, 15) and vector2 ‹- c(10, 10, 20), determine which elements of vector are less than or equal to the corresponding elements in vector2.

    vector1 <- c(5, 10, 15)
    vector2 <- c(10, 10, 20)
    vector1 <= vector2
    [1] TRUE TRUE TRUE