UiL-OTS-labs / jspsych-spr-mw

A self paced reading with moving window experiment using jsPsych
GNU General Public License v2.0
6 stars 3 forks source link

waarde variabele 'correct' #14

Closed irisopgithub closed 2 years ago

irisopgithub commented 2 years ago

De variabele 'correct' heeft waarde True/False - zou dat ook 1/0 kunnen worden, of is dit gewoon hoe jsPsych een boolean weergeeft?

Ik vraag het omdat het in de analyse echt heel veel makkelijker is als het 0 or 1 is, dus als het makkelijk is om 'correct' als 0/1 in de output te krijgen dan zou dat fijn zijn. Maar als er rare kunstgrepen uitgehaald moeten worden om het 0/1 te maken in de jsPsych output, dan doen we het gewoon met True/False.

maartenuni commented 2 years ago

Ik ga er even vanuit dat je bijvoorbeeld het hebt over dit stuk van de dus over output:

    {
        "rt": 2177.1999999284744,
        "stimulus": "The researcher presented old work.",
        "button_pressed": "0",
        "id": 2,
        "item_type": "PRAC",
        "expected_answer": "false",
        "uil_save": true,
        "trial_type": "html-button-response",
        "trial_index": 13,
        "time_elapsed": 50783,
        "internal_node_id": "0.0-8.0",
        "subject": "vcxwc4x0",
        "list": "list2",
        "answer": "false",
        "correct": true
    }

Ik kijk even naar de code.

maartenuni commented 2 years ago

Dat is vrij makkelijk aan te passen, ik prefereer zelf true/false omdat het een boolean is. 0, of 1 is een getal. Ik kan er ook heel makkelijk een icorrect kolom naast zetten, dan kan software die werkt met booleans er mee omgaan en software die dat niet kan ook. Het zou mij ook niet verbazen dat dit fout gaat door een conversie stap van json -> csv -> R/SPSS. Ik ben bang dat de conversie van json->csv het type bool verliest en daar een string van maakt. Er zijn meerdere manier om dit aan te pakken.

  1. Een extra column (icorrect) erbij met de waarde als 0 of 1
  2. de kolom correct aanpassen en daar een 0 of 1 inzetten
  3. het aanpassen in de analyse software, maar ik begrijp dat dat niet de voorkeur geniet.

Dit is allemaal vrij simpel om aan te passen. Zeg maar wat je fijn vind.

irisopgithub commented 2 years ago

optie 1 dan graag! ik snap je overwegingen om liever een boolean te hebben, en natuurlijk kan het in R ook omgeschreven worden naar 0 en 1 (dat laatste hebben we vorig jaar gedaan, denk ik). maar ik laat ze bij voorkeur eerst in excel even aan de data snuffelen, en dan een pivot table maken om snel proporties van goede antwoorden te zien (overall en per pp). de echte analyse doen ze dan later in R. ik wil ze absoluut niet leren om moeilijke dingen te doen in excel, maar die pivot tables zijn wel zo verrekte handig in het leven, daar wil ik ze wel even kennis mee laten maken altijd.

er gebeurt wel iets bij de conversie naar .csv inderdaad, in die .csv's staat True en False met 1 enkele hoofdletter, terwijl er in de json output false en true met kleine letters staat. excel herkent True en False met hoofdletter wel als een boolean volgens mij (maakt er namelijk TRUE en FALSE van met alleen maar hoofdletters), maar van een boolean kun je geen gemiddelde uitrekenen en van nullen en enen wel. wat R ermee doet weet ik zo even niet, dat zal afhangen ook van welk package je gebruikt om de csv in te lezen. (csv files inlezen in R is een enorm hoofdpijndossier, daar zijn verschillende packages voor en ze zijn allemaal op een of andere manier ruk. ik zeg altijd dat het inlezen van je .csv in R het moeilijkste is van de hele analyse en dat is nauwelijks overdreven).

irisopgithub commented 2 years ago

oh ja, zou je 'm dan integer_correct willen noemen? (ik neem aan dat de i voor integer stond?) expliciete variabelenamen zijn fijn.

maartenuni commented 2 years ago

Sure geen probleem. Als het importeren van CSV's een tikkie teleur stellend is, is het misschien een idee om een keer het package jsonlite te installeren. Dan kan je:

library ('jsonlite')
dataframe <- fromJSON('mijnoutputfile.json')

doen en dan daar mee verder werken :-) Die heeft dan ook geen probleem met gekke boolean conversies.

irisopgithub commented 2 years ago

ik heb nog even integer_correct toegevoegd aan de readme