R - 来自不同组的数据集 - 根据组阈值删除值

  • 本文关键字:阈值 删除 数据集 r
  • 更新时间 :
  • 英文 :


我的问题很简单。假设我有一个这样的数据集:

'data.frame':   1200 obs. of  2 variables:
 $ Subject  : Factor w/ 5 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ RT       : int  729 485 555 556 583 491 439 355 587 499 ...

RT代表反应时间。我想过滤掉高于/低于平均值 +/- 2 S.D. 的 RT,但我需要为每个主题计算平均值和 SD,并分别对每个主题的数据应用过滤器。我想我可以简单地对数据集进行子集化,进行操作,然后将数据连接起来以将所有主题组合在一起,但我想知道是否有更有效的方法可以做到这一点。

我们可以使用data.table

library(data.table)
setDT(df2)[, .SD[RT <= (mean(RT)+2*sd(RT)) &
      RT >= (mean(RT)-2*sd(RT)) ], by=Subject] 

最新更新