Search code examples
psychopy

Outputting data from variables in coder


I'm working in PsychoPy to design an experiment. It's almost complete, but I'm trying to output a few variables that I created in a code component into my data file for the experiment, and I haven't been able to figure out how to do that. Here is some relevant code:

if branch == 1:
    if money.keys == 'left':
        feedback = 'You chose $10 immediately'
        TotalNow = TotalNow + 10
        add = (amount - 10)/2 
        amount = add + amount
    elif money.keys == 'right':
        feedback = 'You chose $%.2f in two weeks' %(amount)
        TotalLater = TotalLater + amount
        TLtext = '%.2f' %(TotalLater)
        amount = (amount + 10)/2
    elif money.keys in ['', [], None]:
        feedback = 'You did not make a choice. No reward given.'
        amount = amount
if branch == 2:
    if money.keys == 'right':
        feedback = 'You chose $10 immediately'
        TotalNow = TotalNow + 10
        add = (amount - 10)/2 
        amount = add + amount
    elif money.keys == 'left':
        feedback = 'You chose $%.2f in two weeks' %(amount)
        TotalLater = TotalLater + amount
        TLtext = '%.2f' %(TotalLater)
        amount = (amount + 10)/2
    elif money.keys in ['', [], None]:
        feedback = 'You did not make a choice. No reward given.'
        amount = amount

I would like to output the following variables into the data file: 'TotalLater', 'TotalNow', and 'amount'. I've tried a few things, but it doesn't seem that I'm close. Any help would be appreciated.


Solution

  • Use the addData() method of the current experiment handler (which by default is named thisExp in Builder:

    # specify each column name and its associated variable:
    thisExp.addData('TotalLater', TotalLater)
    thisExp.addData('TotalNow', TotalNow)
    thisExp.addData('amount', amount)
    

    Do this at the end of the relevant routine to save the current values for that trial.