如何在R中统计每个subject ID对应的唯一响应值数量
问题解决方法
错误原因
你代码的核心问题是在dplyr管道操作中使用了数据框$列名的写法,这种写法会直接提取整个原始数据框的完整列,忽略group_by的分组逻辑。你在n_distinct里调用individData$Rating.1,相当于每次都统计全数据集里Rating.1的唯一值数量,自然所有被试的计算结果都完全相同。
修正后代码
按照dplyr的语法规范,管道操作中直接引用列名即可,不需要额外加数据框前缀,所有列名默认指向当前管道传递的数据集,分组后计算会自动在每个分组内独立执行:
BehVari <- individData %>% group_by(SubID) %>% summarise(count = n_distinct(Rating.1)) BehVari
验证建议
你可以随机抽取2-3个被试的原始数据手动统计唯一响应值数量,和代码输出结果做比对,确认结果符合预期。
内容的提问来源于stack exchange,提问作者Ana
相关产品推荐
相关产品推荐

