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:
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"),
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”.
vec_num <- c(5,10,15,20)
vec_num[1] 5 10 15 20
Extract the second and third elements from “vec_num”.
vec_num[c(2,3)][1] 10 15
Create a vector “vec_seq” that contains a sequence of number from 1 to 10.
vec_seq <- (1:10)
vec_seq [1] 1 2 3 4 5 6 7 8 9 10
Create a vector “vec_rand” with 5 random numbers between 1 and 100.
vec_rand <- sample(1:100, 5)
vec_rand[1] 42 72 71 83 19
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
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”
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
Given the following vector of exam scores:
scores <- c(85, 78, 92, 65, 88, 70, 95, 88, 60, 90) students <- c(“Anna”, “Ben”, “Cara”, “Dan”, “Ella”, “Finn”, “Grace”, “Hank”, “Ivy”, “3
scores <- c(85,78,92,65,88,70,95,88,60,90)
students <- c("Anna", "Ben", "Cara", "Dan", "Ella", "Finn", "Grace", "Hank", "Ivy", "Joey")
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_vector <- (10:20)
days_vector <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
print(numeric_vector) [1] 10 11 12 13 14 15 16 17 18 19 20
print(days_vector)[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.
a <- c(1,2,3)
b <- c(4,5,6)
conc_vector <- c(a,b)
conc_vector[1] 1 2 3 4 5 6
Element Extraction: Given the vector temperatures <- c(15, 18, 20, 22, 19, 17, 16), extract the temperatures for the 2nd, 4th, and 6th days.
temp_vector <- c(15,18,20,22,19,17,16)
temp_vector[c(2,4,6)][1] 18 22 17
Omitting Elements: From the same temperatures vector, omit the temperature of the 5th day.
temp_vector[-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_vector <- c(10,20,30,40,50)
new_prices <- prices_vector-(prices_vector*0.1)
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
Random Patterns: Simulate the results of rolling a 6-sided die 10 times.
sample(1:6, size = 10, replace = T) [1] 4 5 2 6 6 1 4 4 4 4
Character Vector Operations: Given the vector fruits <- c(“apple”, “banana”, “cherry”), extract the first three letters of each fruit.
fruits_vector <- c("apple", "banana", "cherry")
substr(fruits_vector,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.
ages_vector <- c(25,30,35,40,45,50)
ages_vector [ages_vector>30 & ages_vector<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