# Example 1: Direct use - pass data and get results immediately
trial_data <- data.frame(
condition_idx = rep(1:2, each = 4),
item_idx = rep(1:2, 4),
rt = c(0.5, 0.6, 0.7, 0.8, 0.55, 0.65, 0.75, 0.85),
accuracy = c(1, 1, 0, 1, 1, 0, 1, 1)
)
# Compute mean RT and accuracy by condition and item
result <- summarise_by(
trial_data,
mean_rt = mean(rt),
mean_acc = mean(accuracy),
.by = c("condition_idx", "item_idx"),
.wider_by = "condition_idx"
)
# Result has columns: condition_idx, mean_rt_item_idx_1, mean_rt_item_idx_2, etc.
result
# Example 2: Build-then-apply - create reusable summary functions
# Build separate summary functions for different statistics
rt_summary_pipe <- summarise_by(
mean_rt = mean(rt),
sd_rt = stats::sd(rt),
.by = c("condition_idx", "item_idx"),
.wider_by = "condition_idx"
)
acc_summary_pipe <- summarise_by(
mean_acc = mean(accuracy),
n_trials = length(accuracy),
.by = c("condition_idx", "item_idx"),
.wider_by = "condition_idx"
)
# Combine with + and apply to data
combined_summary_pipe <- rt_summary_pipe + acc_summary_pipe
result <- combined_summary_pipe(trial_data)
# Result has all summaries joined by condition_idx
result
Run the code above in your browser using DataLab