首页 > 解决方案 > 如何在 dplyr 中跨行执行操作

问题描述

我试图弄清楚如何在 dplyr 中创建使用不同行信息的汇总统计

Subject   BinLab      mean.RT 
s001      Deviant_RT  533.8115
s001      Standard_RT 508.2450
s002      Deviant_RT  465.5538
s002      Standard_RT 425.0351

基本上,我想创建一个按主题分组的数据框,并给出 Deviant_RT 和 Standard_RT 的 mean.RT 之间的差异

这是我尝试过的:

RTDataDifferenceWave <- RTData %>%
  group_by(Subject) %>%
  summarise(DiffRT = Deviant_RT-StandardRT)

我被困在如何创建这个新的因变量“DiffRT”上,这又是 Deviant_RT 和 Standard_RT 之间的区别。更喜欢 dplyr 中的答案,但对其他解决方案持开放态度。

标签: rdplyr

解决方案


一种方法是切换到宽数据格式:

RTDataDifferenceWave <- RTData %>% group_by(Subject) %>% 
  tidyr::spread(BinLab, mean.RT) %>% 
  mutate(DiffRT = Deviant_RT-Standard_RT)

推荐阅读