Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

Running CSVs on Android

Hi!

I'm currently working on my bachelors project and I want to run an experiment on Android. When I run this with the data in the data table in the experiment everything works fine. However when try and run it with a CSV to read the data from the program crashes.
I have seen a similar problem here:
http://forum.cogsci.nl/index.php?p=/discussion/1756/solved-importing-python-modules-on-android
But it doesn't show how the issue gets solved.
In a worst case scenario I could make 20 different OpenSesame experiments, for each subject one, but that's not super efficient.

I included the Dummy version of my experiment. One where the input is read from the table and one where it's read from file. I have also included the CSV.

Comments

  • Hi Sannee,

    I don't know what the issue is, or how to solve it. But you probably can bypass it. Just don't use the loop table at all. Use python scripts directly to read the csv file (maybe with python pandas) and define variables based on that. I think this will be rather straightforward.

    Hope this is useful.

    Eduard

  • Hi!

    Sorry for my late comment, thank you for the suggestion!

    I am not super familiar with using python scripts. Could you maybe show me a quick example of how I could use it? And could I just say then in the "source" part of the OpenSesame experiment that it should read in a .py file instead of a .csv, would that be enough?

    Kind regards,
    Sanne

  • Hi Sanne,

    Here some example code how to load the data:

    import pandas as pd
    
    # read the file
    table = pd.read_csv('/path/to/file/voorbeelden.csv')
    
    # the first number indicates the index of the row
    # the second one indicates the column label
    print(table.loc[0,'Spreekwoord'])
    
    # so to define vaiables per trial, you can do stuff like
    
    # I assume you have trial numbers defined in the loop table
    
    var.spreekword = table.loc[var.trial_no-1,'Spreekwoord']
    var.geluid = table.loc[var.trial_no-1,'Geluid']
    

    Make sure to put this code in the prepare phase of an inline_script in the beginning of your trial loop. Also, make sure that you have the trial number set in the loop table.

    And could I just say then in the "source" part of the OpenSesame experiment that it should read in a .py file instead of a .csv, would that be enough?

    I'm not sure what you mean with that, but if you don't let Opensesame load your text file, you can set source to table and everything should be fine.

    Does that make sense?

    Eduard

Sign In or Register to comment.