Thank you so much. You're absolutely right, I don't have a row per observation per participant. Each participant has several rows. My data is as follows:
sub condition experiment Q1
1 ci A -2
2 ci A 2
3 ci A 2
...
1 cc A -3
2 cc A -3
3 cc A -3
...
1 ci B 0.5
2 ci B 3
3 ci B 3
...
1 ci B 0.5
2 ci B 3
3 ci B 3
And I used this command:
my_data <- read.csv(file.choose())
my_data.mean <- aggregate(my_data$Q1, by = list(my_data$subject, my_data$condition, my_data$experiment), FUN = 'mean')
colnames(my_data.mean) <- c('subject', 'condition', 'experiment', 'Q1')
my_data.mean <- my_data.mean[order(my_data.mean$subject), ]
head(my_data.mean)
Q1.aov <- with(my_data.mean, aov(Q1 ~ condition * experiment + Error(subject / (condition * experiment) )) )
summary(Q1.aov)
Thank you for your help!!