Load required libraries

library(tidyverse) library(nycflights13)

1.1 How many flights arrived late each month? (Late = more than 5 minutes after scheduled arrival)

late_flights <- flights %>% filter(arr_delay > 5) %>% group_by(month) %>% summarise(late_flights = n())

print(late_flights)

1.2 What percentage of traffic did each carrier represent, by month?

carrier_traffic <- flights %>% group_by(month, carrier) %>% summarise(total_flights = n(), .groups = “drop”) %>% group_by(month) %>% mutate(percentage = (total_flights / sum(total_flights)) * 100)

print(carrier_traffic)

1.3 What was the latest flight to depart each month?

latest_flights <- flights %>% group_by(month) %>% filter(dep_delay == max(dep_delay, na.rm = TRUE))

print(latest_flights)

Load the CSV file

responses <- read.csv(“multipleChoiceResponses1.csv”)

2.1 Count the usefulness by learning platform

usefulness_counts <- responses %>% select(starts_with(“LearningPlatformUsefulness”)) %>% pivot_longer(cols = everything(), names_to = “platform”, values_to = “usefulness”) %>% filter(!is.na(usefulness)) %>% mutate(platform = str_remove(platform, “LearningPlatformUsefulness”)) %>% count(platform, usefulness)

print(usefulness_counts)

2.2 Compute the number of total responses and those at least useful

response_summary <- responses %>% select(starts_with(“LearningPlatformUsefulness”)) %>% pivot_longer(cols = everything(), names_to = “platform”, values_to = “usefulness”) %>% filter(!is.na(usefulness)) %>% mutate(platform = str_remove(platform, “LearningPlatformUsefulness”)) %>% group_by(platform) %>% summarise( total = n(), at_least_useful = sum(usefulness != “Not Useful”), perc_usefulness = at_least_useful / total )

print(response_summary)

Load required libraries

library(tidytext)

Load the dataset

twitter_data <- readRDS(“twitter_data.rds”)

3.1 Compute the mean, min, and max follower counts grouped by complaint status

follower_stats <- twitter_data %>% group_by(complaint_label) %>% summarise( avg_followers = mean(followers_count, na.rm = TRUE), min_followers = min(followers_count, na.rm = TRUE), max_followers = max(followers_count, na.rm = TRUE) )

print(follower_stats)

3.2 Tokenize the data, count words, and arrange in descending order

word_counts <- twitter_data %>% unnest_tokens(word, text) %>% count(word, sort = TRUE)

print(word_counts)