Как сохранить время реакции на визуальный стимул в файл csv

#python #csv #psychopy

#python #csv #психопатия

Вопрос:

Я ОЧЕНЬ новичок и неопытен в Python / кодировании в целом. Я создаю задачу Stroop в python psychopy. Я создал функционирующий код для представления необходимых мне визуальных стимулов, мне просто нужно придумать, как сохранить время реакции участника на каждый из стимулов. Я попробовал некоторый код, который нашел в Интернете, и он дал мне время реакции по отношению к началу эксперимента, а не с точки зрения представления каждого стимула (это то, что я хочу). Любая помощь в этом была бы высоко оценена. Кроме того, мне также нужно записать номер испытания, цвет текста, название цветового слова, цвет, которым ответил участник, и были ли они правильными или нет, также в файл csv. Любая помощь по этому вопросу выходила бы за рамки моего первоначального вопроса, но также была бы ОЧЕНЬ полезной ! 🙂

 filename = 'stroop3data.csv'

f = open(filename, 'w')
csvfile = DictWriter(f, fieldnames = ['RT'])
csvfile.writeheader()

congruent_pairs = 15 * [('red', 'red'), ('blue', 'blue'), ('green',      'green'), ('yellow', 'yellow')]
incongruent_pairs = 5 * [('red', 'blue'), ('red', 'green'), ('red',   'yellow'), ('blue', 'red'), ('blue', 'green'), ('blue', 'yellow'), ('green', 'red'), ('green', 'blue'), ('green', 'yellow'), ('yellow', 'red'), ('yellow', 'blue'), ('yellow', 'green')]

pairs = congruent_pairs   incongruent_pairs



shuffle(congruent_pairs)
shuffle(incongruent_pairs)
shuffle(pairs)

answer_keys = {'f': 'red', 'g': 'blue', 'h': 'green', 'j': 'yellow'}

rts = []



win = visual.Window([1024, 768], fullscr = False, 
                allowGUI=True, units="pix", color = (-1, -1, -1))

stim = visual.TextStim(win)

instructionText = visual.TextStim(win, "Thank you for choosing to   participate in this experiment. You will be presented with different names of colours. In some trials the colour of the word will match the name of the colour, in some the colour of the word 
                              will be different to the name of the colour. Your task is to identify the colour of the word, ignoring the word itself. Coloured stickers on the keyboard in front of you correspond to the key you should press to indicate your response.
                              
                              
                              PRESS 'ENTER' TO CONTINUE", color=(1,   1, 1))
instructionText.draw()

win.flip()

event.waitKeys(keyList=['return'])

readyText = visual.TextStim(win, "Ready?", color=(1, 1, 1))

readyText.draw()


win.flip()


event.waitKeys(keyList=['return'])



for pair in pairs:



    stim.text = pair[0]
    stim.color = pair[1]



    stim.draw()
    event.clearEvents()

    displaytime = win.flip()





    keys, rt = event.waitKeys(keyList=answer_keys.keys(), timeStamped=True)[0] 
    key, keytime = keys [0]
    rts.append(keytime - displaytime)




    score = answer_keys[key] == pair[1]#means that the correct answer corresponds to the colour of the word



    stim.text = 'CORRECT!' if score else 'INCORRECT'
    stim.text  = 'nRT=%i ms' %(rt*1000)
    stim.draw()
    win.flip()
    event.waitKeys()

    csvfile.writerow({'RT': rts})
  

Я уже пробовал изменять разные имена в разделе, где я сохраняю ключи и время реакции. Все комбинации, которые я пробовал, вызывают много разных ошибок… например: ‘объект с плавающей точкой, не подлежащий повторению’, ‘объект кортежа, не подлежащий повторению’ — для строки 93 (время ключа — время отображения), недостаточно аргументов для строки выше этого и т.д. И т.п.

Я бы предпочел, чтобы время реакции сохранялось в виде числа с плавающей запятой в секундах в моем CSV-файле.

Комментарии:

1. Я бы порекомендовал вам научиться использовать TrialHandler класс PsychoPypsychopy.org/api/data.html#psychopy.data . TrialHandler Это выполнит большую часть этой работы за вас (т. Е. он будет считывать в ваших условиях из csv-файла и автоматически обрабатывать сохранение этих переменных в файл данных). Существует .addData() функция для включения вычисляемых вами показателей (таких как время реакции) в файл данных. Кроме этого, здесь есть множество вопросов: вы можете обнаружить, что форум сообщества по адресу discourse.psychopy.org лучше подходит для получения поддержки..

2. Спасибо за вашу помощь. Очень признателен!