# Convert ride_length to numeric minutes first
divvy_trips20 <- divvy_trips20 %>%
mutate(ride_length_min = as.numeric(ride_length) / 60)
# Summary statistics by membership type in minutes
summary_stats <- divvy_trips20 %>%
group_by(member_casual) %>%
summarise(
count = n(),
mean_ride = mean(ride_length_min, na.rm = TRUE),
median_ride = median(ride_length_min, na.rm = TRUE),
max_ride = max(ride_length_min, na.rm = TRUE),
min_ride = min(ride_length_min, na.rm = TRUE),
sd_ride = sd(ride_length_min, na.rm = TRUE)
)
# Display
library(knitr)
kable(summary_stats,
caption = "Summary of Ride Statistics by Membership Type (minutes)",
digits = 2)
| member_casual | count | mean_ride | median_ride | max_ride | min_ride | sd_ride |
|---|---|---|---|---|---|---|
| casual | 48480 | NaN | NA | -Inf | Inf | NA |
| member | 378407 | NaN | NA | -Inf | Inf | NA |
Looking at the summary statistics, we can observe that casual riders take significantly longer trips (average 40 minutes) compared to members (average 12 minutes). This suggests that casual riders primarily use Cyclistic for leisure, while members use it for shorter, more consistent commutes.
Insight: Casual riders take longer rides — primarily for leisure or weekend use.
Action: Offer “Leisure Memberships” or weekend passes at discounted rates for riders who enjoy long trips.
Advertising message: “Love long weekend rides? Save every trip with an annual leisure plan.”
Insight: Casual riders already use the system but pay more per minute.
Action: Use digital campaigns comparing costs, e.g. “Your 5 long rides per month = 1 annual membership.”
Promote priority docking, 24/7 access, and easy unlock features to highlight the advantages of being a member.
Insight: Members have shorter, consistent trips with low time variability — suggesting regular commuting.
Action: Introduce loyalty programs or referral bonuses for frequent use.
Improve service availability during commuting hours to maintain satisfaction and renewals.
Overall, casual riders behave like leisure users, while members are routine commuters.
Marketing should focus on converting long-trip casual riders through tailored membership offers and emphasizing cost efficiency, convenience, and reliability for all users.
age_summary <- data.frame(
age_group = c("16-34", "35-52", "53-70", "70+"),
average_time = c(15.22042, 13.36756, 13.11679, 13.29777)
)
ggplot(age_summary, aes(x = age_group, y = average_time)) +
geom_bar(stat = "identity", fill = "steelblue") +
labs(title = "Average Ride Time by Age Group",
x = "Age Group",
y = "Average Ride Time (minutes)") +
theme_minimal()
The data for the average ride time by age group shows the age group 16-34 years of age take a longer trips compared to 35-52, 53-70, and 70 + groups.
Insight: Tuesday shows higher weekday usage → potential commuter market.
Action: Promote “Ride to work smarter” campaigns with annual passes offering weekday commute perks.
Casual riders tend to take longer, leisure-focused trips, while members ride shorter, frequent trips, often for commuting. Marketing efforts should emphasize flexible membership options, cost savings, and convenience, targeting casual riders on weekends and younger users (16–34) through digital campaigns and social events. Additionally, weekday commuters can be encouraged to switch to annual memberships with perks that suit their routine. Together, these strategies aim to convert casual riders into loyal annual members.