我正在分析来自实验的响应时间 (RT) 数据。在这些实验中,每个人完成一定数量的各种试验类型的试验。仅使用来自正确试验的 RT 数据;因此,每个受试者每个试验类型要分析的 RT 数量不同。我正在尝试创建一个异常值函数,该函数应用一个标准偏差截止值,该截止值取决于要分析的试验次数(Van Selst & Jolicoeur,1994)。例如,如果第一个受试者有 100 次 A 试验,我想计算该受试者 A 试验的平均值和标准偏差,然后应用标准偏差截止值(例如,大于平均值加或减的绝对值的试验标出的标准偏差数记为 0)。
我想使用的标准偏差截止值如下所示:
#n = # of trials
if n < 4 then SDout=3
if n == 4 then SDout=1.458
if n == 5 then SDout =1.68
if n == 6 then SDout=1.841
if n == 7 then SDout=1.961
if n == 8 then SDout=2.050
if n == 9 then SDout=2.12
if n == 10 then SDout=2.173
if n == 11 then SDout=2.22
if n == 12 then SDout=2.246
if n == 13 then SDout=2.274
if n == 14 the SDout=2.31
if n >= 15 & if n < 20 then SDout=2.326
if n >= 20 &if n < 25 then SDout=2.391
if n >= 25 & if n < 30 then SDout=2.41
if n >= 30 & if n < 35 then SDout=2.4305
if n >= 35 & if n < 50 then SDout=2.45
if n >= 50 & if n < 100 then SDout=2.48
if n >= 100 then SDout=2.5
我的数据有 3 列:id(主题标识符)、ttype(试验类型)和 RT。
从本质上讲,我需要这个函数做的是:获取每个试验类型的每个受试者的 RT 平均值、SD 和试验次数,然后根据 SDout 乘以 SD 并将其添加到指 RT。最后,我想要创建一个新列的函数,其中外围试验得分为 0,“良好”试验得分为 1。
我认为实现这一点的一种方法是使用嵌套循环,其中试验类型嵌套在主题中。但是,编写这个函数超出了我的技能水平,所以我寻求帮助来创建它。如果有人有建议或提示,或实现此目的的非循环方式,我将不胜感激。
谢谢