我正在使用心理学来构建认知任务。 我在屏幕上有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。现在,我只需要多长时间才能得到正确答案。
答案 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>