我的问题很简单。我们假设我有一个这样的数据集:
'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,并分别对每个主题的数据应用过滤器。我想我可以简单地对我的数据集进行子集化,进行操作,然后连接数据以将所有主题放在一起,但我想知道是否会有更有效的方法来实现它。
答案 0 :(得分:0)
我们可以使用data.table
library(data.table)
setDT(df2)[, .SD[RT <= (mean(RT)+2*sd(RT)) &
RT >= (mean(RT)-2*sd(RT)) ], by=Subject]