set.seed(123) # Setting seed for reproducibility
library(tidyr)
student_data <- data.frame( student_id = 1:50, name = paste0(“Student”, 1:50), midterm1 = sample(60:100, 50, replace = TRUE), midterm2 = sample(60:100, 50, replace = TRUE), final = sample(60:100, 50, replace = TRUE) )
student_data_long <- pivot_longer(student_data, cols = starts_with(“midterm”) | final, names_to = “exam”, values_to = “score”)
head(student_data_long)
#task 2
library(tidyr)
student_data2 <- data.frame( student_id = 1:50, name_age = c(“John_21”, “Alice_20”, “Bob_22”, “Emily_23”, “Michael_22”), exam_scores = c(“midterm1_80,midterm2_85,final_75”, “midterm1_75,midterm2_78,final_80”, “midterm1_82,midterm2_80,final_85”, “midterm1_88,midterm2_90,final_92”, “midterm1_85,midterm2_86,final_88”) )
student_data2 <- separate(student_data2, name_age, into = c(“name”, “age”), sep = “_“)
student_data2 <- separate(student_data2, exam_scores, into = c(“exam1”, “score1”, “exam2”, “score2”, “exam3”, “score3”), sep = “,|_“)
student_data2_long <- pivot_longer(student_data2, cols = starts_with(“score”), names_to = “exam”, values_to = “score”)
head(student_data2_long)
#task 4
library(tidyr)
student_data <- data.frame( student_id = 1:50, name_age = c(“John_21”, “Alice_20”, “Bob_22”, “Emily_23”, “Michael_22”), exam_scores = c(“midterm1_80,midterm2_85,final_75”, “midterm1_75,midterm2_78,final_80”, “midterm1_82,midterm2_80,final_85”, “midterm1_88,midterm2_90,final_92”, “midterm1_85,midterm2_86,final_88”) )
student_data <- separate(student_data, name_age, into = c(“name”, “age”), sep = “_“)
exam_scores_split <- separate(student_data, exam_scores, into = c(“exam1”, “score1”, “exam2”, “score2”, “exam3”, “score3”), sep = “,|_“)
student_data_wide <- pivot_wider(exam_scores_split, names_from = c(“exam1”, “exam2”, “exam3”), values_from = c(“score1”, “score2”, “score3”))
student_data_wide
#task 5
library(tidyr)
student_data <- data.frame( student_id = 1:50, name_age = c(“John_21”, “Alice_20”, “Bob_22”, “Emily_23”, “Michael_22”), exam_scores = c(“midterm1_80,midterm2_85,final_75”, “midterm1_75,midterm2_78,final_80”, “midterm1_82,midterm2_80,final_85”, “midterm1_88,midterm2_90,final_92”, “midterm1_85,midterm2_86,final_88”) )
student_data <- separate(student_data, name_age, into = c(“name”, “age”), sep = “_“)
student_data <- unite(student_data, name_age, name, age, sep = “_“)
head(student_data)