num_var <- 42.5
num_var[1] 42.5
Create a numeric variable” num_var” with the value “42.5”.
num_var <- 42.5
num_var[1] 42.5
Create a character variable “char_var” with the value “R is fun!”.
char_var <-"R is fun!"
char_var[1] "R is fun!"
Print the data type “char_var”.
class(char_var)[1] "character"
Create a list “student_info” with the following elements:
1.”name”: “Mohammad Nasir Abdullah”
student_info <- list(
name = ("Mohammad Nasir Abdullah"),
age = (18),
grades = c(99,100,89)
)
student_info$name
[1] "Mohammad Nasir Abdullah"
$age
[1] 18
$grades
[1] 99 100 89
Create a data frame “df_students” with the following columns
df_students <- data.frame(
name = c("John", "Pablo"),
age = c(22,30)
)
df_students name age
1 John 22
2 Pablo 30
Create a data frame “df_students” with the following columns
“Name”: “John”, “Pablo”
“Age”: “22”, “30”
“Grade”: “A”, “C”
df_students <- data.frame(
name = c("John", "Pablo"),
age = c(22,30),
grade = c("A","C")
)
df_students name age grade
1 John 22 A
2 Pablo 30 C
Create a numeric vector “vec_num” with the values “5,10,15,20”.
numeric_vector <- c(5,10,15,20)
numeric_vector[1] 5 10 15 20
Extract the second and third elements from “vec_num”.
numeric_vector[c(2,3)][1] 10 15
Create a vector “vec_seq” that contains a sequence of number from 1 to 10.
seq (1,10) [1] 1 2 3 4 5 6 7 8 9 10
Create a vector “vec_rand” with 5 random numbers between 1 and 100.
sample (1:100, size = 5)[1] 42 15 7 54 26
Create a character vector “vec_char” with the values “apple”, “banana”, “cherry”.
vec_char <- c("apple", "banana","cherry")
vec_char[1] "apple" "banana" "cherry"
Use the substr() function to extract the first 3 characters from each elements of “vec_char”.
substr(vec_char, 1, 3)[1] "app" "ban" "che"
Create a character vector “vec_colors” with the values “red”, “blue”, “green”, “red”, “blue”.
vec_colors <- c("red","blue","green","red","blue")
vec_colors[1] "red" "blue" "green" "red" "blue"
Convert “vec_colors” into a factor vector ” factor_colors”.
factor_colors <- as.factor(vec_colors)
factor_colors[1] red blue green red blue
Levels: blue green red
Print the levels of ” factor_colors”.
print(factor_colors)[1] red blue green red blue
Levels: blue green red
Given a numeric vector “vec_bonus = c(10,20, 30, 40, 50)”, write a code snippet to:
vec_bonus <- c(10,20,30,40,50)
vec_bonus[vec_bonus > 25][1] 30 40 50
mean(vec_bonus[vec_bonus > 25])[1] 40
Given the following vectors:
weights <- c(55, 68, 72, 61, 58, 75, 64, 70) names <- c(“Alice”, “Bob”, “Charlie”, “Daisy”, “Eve”, “Frank”, “Grace”, “Henry”)
Identify the names of individuals whose weight is greater than 65kg.
Find the average weight of individuals weighting less than or equal to 60kg.
Extract the weights of individuals whose names start with the letter ‘A’ or ‘D’.
Determine the number of individuals whose weight is between 60kg and 70kg (inclusive).
Hint:
You might find functions like mean(), substr(), and length() useful.
weights <- c(55, 68, 72, 61, 58, 75, 64, 70)
names <- c("Alice", "Bob", "Charlie", "Daisy", "Eve", "Frank", "Grace", "Henry")
names[weights > 65][1] "Bob" "Charlie" "Frank" "Henry"
mean(weights[weights <= 60])[1] 56.5
weights[substr(names,1 ,1) %in% c("A","D")][1] 55 61
length(weights[weights>=60 & weights <=70])[1] 4
temperatures <- c(22, 25, 19, 21, 18, 24, 23) days <- c(“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”
Identify the days when the temperature was below 20°C.
Calculate the difference between the highest and lowest temperatures of the week.
Determine the number of days when the temperature was between 20°C and 24°C (inclusive).
temperatures <- c(22, 25, 19, 21, 18, 24, 23)
days <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
days[temperatures < 20][1] "Wednesday" "Friday"
max(temperatures) - min(temperatures)[1] 7
length(days[temperatures>=20 & temperatures<=24])[1] 4
scores <- c(85, 78, 92, 65, 88, 70, 95, 80, 60, 90) students <- c(“Anna”, “Ben”, “Cara”, “Dan”, “Ella”, “Finn”, “Grace”, “Hank”, “Ivy”, “Jay”)
Identify the students who scored above 90.
Find the average score of students who scored below 80.
Extract the scores of students whose names start with a vowel (A, E, I, O, U).
scores <- c(85, 78, 92, 65, 88, 70, 95, 80, 60, 90)
students <- c("Anna", "Ben", "Cara", "Dan", "Ella", "Finn", "Grace", "Hank", "Ivy", "Jay")
students[scores > 90][1] "Cara" "Grace"
mean(scores[scores < 80])[1] 68.25
scores[substr(students,1,1)%in% c("A","E","I","O","U")][1] 85 88 60
Take Home Exercise
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.
numeric_vector1 <- c(10:20)
numeric_vector1 [1] 10 11 12 13 14 15 16 17 18 19 20
char_vec <- c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")
char_vec[1] "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"
[7] "Sunday"
Vector Concatenation: Given two vectors: a <- c(1, 2, 3) and b <- c(4, 5, 6), concatenate them to form a single vector.
ab <- c(1, 2, 3,4, 5, 6)
ab[1] 1 2 3 4 5 6
Element Extraction: Given the vector temperatures <- c(15, 18, 20, 22, 19, 17, 16), extract then 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
Omitting Elements: From the same temperatures vector, omit the temperature of the 5th day.
temperatures[-5][1] 15 18 20 22 17 16
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)
new_prices <- prices*0.9
new_prices[1] 9 18 27 36 45
Patterned Vectors: Create a vector that contains the numbers from 5 to 50, but only includes every 5th number (i.e., 5, 10, 15, …).
seq(5,50, by=5) [1] 5 10 15 20 25 30 35 40 45 50
Patterns: Simulate the results of rolling a 6-sided die 10 times.
sample (1:6, size = 10, replace = TRUE) [1] 2 1 3 5 2 2 6 2 3 1
Character Vector Operations: 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"
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.
vector_ages <- c(25, 30, 35, 40, 45, 50)
vector_ages[vector_ages>30 & vector_ages<50][1] 35 40 45
Relational Operators with Vectors: Given two vectors: vector1 <- c(5, 10, 15) and vector2 <- c(10, 10, 20) determine which elements of vector1 are less than or equal to the corresponding elements in vector2.
vector1 <- c(5, 10, 15)
vector2 <- c(10, 10, 20)
compare <- vector1 <= vector2
compare[1] TRUE TRUE TRUE