# ferdo Lab — WEEK 2 · PUBLIC ORIGINAL INSTRUCTOR SOLUTION
# All data fictional. Run from extracted package root. Base R only.
participants <- read.csv("data/participants.csv")
scores <- read.csv("data/scores.csv")
stopifnot(all(scores$occasion %in% c(0,1)))
combined <- merge(scores,participants,by=c("id","intervention"))
before <- combined[combined$occasion==0,c("id","intervention","ahiTotal")]
after <- combined[combined$occasion==1,c("id","intervention","ahiTotal")]
names(before)[3] <- "pre"
names(after)[3] <- "post"
paired <- merge(before,after,by=c("id","intervention"))
paired$delta <- paired$post-paired$pre
print(paired)
print(nrow(paired))
print(mean(paired$delta))
print(aggregate(delta~intervention,paired,mean))
stopifnot(nrow(paired)==10L,nrow(combined)==22L)
cat("W2 PASS: matched 10/12 synthetic records\n")
# Occasion 0=pre, 1=post. Two-key join prevents accidental mismatches.
# Missing paired records may bias an estimate; this is not causal proof.
