心理学没有得到所有的答案

时间:2018-01-03 19:13:34

标签: psychopy

我正在使用心理学来构建认知任务。 我在屏幕上有5个圆圈,参与者需要按下好圆圈。 我的代码:

if mouse.isPressedIn(cercle_1):
    continueRoutine = False
    # save data if you like:
    thisExp.addData('correct', 1)
    thisExp.addData('RT', t)

elif mouse.isPressedIn(cercle_2):
    # save data if you like:
    thisExp.addData('correct', 0)
    thisExp.addData('RT', t)
    continueRoutine = True
elif mouse.isPressedIn(cercle_3):
    # save data if you like:
    thisExp.addData('correct', 0)
    thisExp.addData('RT', t)
    continueRoutine = True
elif mouse.isPressedIn(cercle_4):
    # save data if you like:
    thisExp.addData('correct', 0)
    thisExp.addData('RT', t)
    continueRoutine = True

elif mouse.isPressedIn(cercle_5):
    # save data if you like:
    thisExp.addData('correct', 0)
    thisExp.addData('RT', t)
    continueRoutine = True

问题是我的数据文件只包含响应时间(RT)和circle_1的信息。在按下circle_1之前,我不知道参与者是否尝试了其他圈子。

问题:如果参与者按下鼠标bouton,我怎样才能在我的csv文件中显示信息。也许在按下cercle_1之前,他按下了cercle_3。现在,我只需要多长时间才能得到正确答案。

1 个答案:

答案 0 :(得分:1)

听起来你想要在试验中记录一系列事件。这可能很难找到合适的数据结构,但在您的情况下,我可以考虑两种解决方案。

记录错误回复的数量

有一列(例如'..')并计算非circle_1回复的数量。在开始例程添加

n_wrong

然后在每个框架中添加:

n_wrong = 0

然后在结束例程下添加:

if mouse.isPressedIn(cercle_1):
    thisExp.addData('correct', 1)
    thisExp.addData('RT', t)
    continueRoutine = False

elif mouse.isPressedIn(cercle_2) or mouse.isPressedIn(cercle_3) or mouse.isPressedIn(cercle_4) or mouse.isPressedIn(cercle_5):
    thisExp.addData('correct', 0)
    thisExp.addData('RT', t)
    n_wrong += 1  # One more error recorded!

    # Now wait until the mouse release to prevent recording 60 wrong clicks per second!
    while any(mouse.getPressed()):
        pass

记录按下了哪些圆圈

另一个是为每个圆圈添加一列,并在单击时将它们从“未压缩”移动到“按下”。然后,列thisExp.addData('n_wrong', n_wrong) 将与您当前称为cercle1列的内容相对应。所以在开始常规

correct

然后在每个框架下,我会这样做:

# Mark all non-target cirlces as unpressed
thisExp.addData('cercle1', 0)
thisExp.addData('cercle2', 0)
thisExp.addData('cercle3', 0)
thisExp.addData('cercle4', 0)
thisExp.addData('cercle5', 0)

后一种方法可以通过添加名为if mouse.isPressedIn(cercle_1): thisExp.addData('cercle1', 1) continueRoutine = False if mouse.isPressedIn(cercle_2): thisExp.addData('cercle2', 1) if mouse.isPressedIn(cercle_3): thisExp.addData('cercle3', 1) if mouse.isPressedIn(cercle_4): thisExp.addData('cercle4', 1) if mouse.isPressedIn(cercle_5): thisExp.addData('cercle5', 1) 等的列来延长反应时间,但是您还需要执行cercle1_rt技巧来记录开始而不仅仅是释放。< / p>