如何用aggregate函数同时按两个因子指定水平子集化并聚合数据?
解决方法
你可以在aggregate的subset参数里用**逻辑与(&)**同时指定两个因子的水平条件,直接组合多个筛选规则就行。假设你的第二个因子列名叫f_condition(如果实际列名不同,替换成你的真实列名),示例代码如下:
# 同时筛选f.pair等于2、f_condition等于1的子集,按participant聚合correct_resp的均值 unique_mean <- aggregate( correct_resp ~ participant, data = AOV1, subset = (f.pair == 2 & f_condition == 1), FUN = mean )
如果觉得在aggregate里写多个条件太拥挤,也可以先提前筛选出符合要求的子数据集,再做聚合,可读性更强:
# 先筛选符合两个条件的数据 filtered_data <- subset(AOV1, f.pair == 2 & f_condition == 1) # 再聚合均值 unique_mean <- aggregate(correct_resp ~ participant, data = filtered_data, FUN = mean)
两种方法都能实现你要的「按两个因子指定水平子集化后聚合」的需求,选哪种看你个人习惯。
内容的提问来源于stack exchange,提问作者Paul D
相关产品推荐
相关产品推荐

