Dit is een site voor studenten van de Open Universiteit. Voordat je een vraag kunt stellen moet je even een account aanmaken (dit systeem is niet gekoppeld aan je OU studentnummer en wachtwoord).

Welkom bij het vraag- en antwoord systeem van de onderzoeks-practica van de studie psychologie bij de Open Universiteit.

Houd er, als je een vraag stelt, rekening mee dat je de richtlijnen volgt!

hercoderen van string values naar numeric values in SPSS syntax

0 leuk 0 niet-leuks
Ik probeer een aantal likertschalen in de syntax van SPSS te hercoderen. De likertschalen zijn gemaakt in Limesurvey. De variabele scores zijn "A1", "A2", "A3", "A4", "A5", "A6" en "A7". De respectievelijke value labels zijn "", "", "", "|", ">", ">>", ">>>". De likertschalen zijn van de variabelen V9 tot en met V53.

De volgende commando heb ik gebruikt in de syntax:

RECODE v9 to v53 ("A1" = 1) ("A2" = 2) ("A3" = 3) ("A4" = 4) ("A5" = 5) ("A6" = 6) ("A7" = 7).

Daarop krijg ik echter de melding dat een string value niet gehercodeerd kan worden naar een numeric value.  

Deze handelingen zijn me wel gelukt met behulp van de menuknoppen in SPSS (Transform - Recode into different values).

Ik wil echter liever de variabelen rechtstreeks in de syntax wijzigen. Zeker omdat ik de originele scores (A1, ..., A7) toch nier meer zal gebruiken. Wanneer ik ga hercoderen in andere variabelen krijg ik ook een teveel aan variabelen met het gevolg dat de Data View te onoverzichtelijk wordt.
gevraagd 29 december 2016 in Anders door Mark (240 punten)
Na lang zoeken ben ik op de volgende commando gekomen:

AUTORECODE VARIABLES=Intentions1

/INTO Intentions1N

/BLANC=MISSING

Dit doet de truc perfect. Het enige 'probleem' is dat ik telkens een nieuwe variabele moet maken. Aangezien ik zo 44 variabelen moet hercoderen, wordt mijn dataset onoverzichtelijk.

1 Antwoord

0 leuk 0 niet-leuks

Ik zie dat je het antwoord zelf ook al hebt gevonden. De fout in de bovenste syntax is dat je het had moeten doen als:

RECODE v9 TO v53 ("A1" = 1) ("A2" = 2) ("A3" = 3) ("A4" = 4) ("A5" = 5) ("A6" = 6) ("A7" = 7) INTO numeric_v9 TO numeric_v53.

Want je moet inderdaad naar een nieuwe variabelenaam.

Je moet overigens altijd naar een nieuwe variabelenaam hercoderen. Dit omdat je niet het risico wil lopen dat je dezelfde syntax per ongeluk twee keer uitvoert. Bovendien is het handig als je kunt zien wat de waarden voor de hercodering is, zodat je, als je eventuele fouten op het spoor komt, die snel kunt identificeren.

Ik lees in je opmerking dat je je dataset bekijkt alsof het een soort spreadsheet is. Leer jezelf dit af. Mensen lijden aan teveel biases om te kunnen vertrouwen op wat je waarneemt door je data op die manier te bekijken. Je moet jezelf aanleren je data te bekijken door middel van frequentietabellen, histogrammen, descriptives, etc. Als je dat eenmaal kunt is het aantal variabelen in je dataset niet langer een probleem voor je: je kunt dan prima met honderden variabelen werken. En dat is handig, want vaak bestaan datasets uit zoveel variabelen. Zorg dus dat je variabelenamen 'self-explanatory' (en Engelstalig, in verband met het delen van je data) zijn, en werk aan de hand van een overzicht van je variabelenamen.

Verder is het verstandig om voordat je data gaan verzamelen, je onderzoek zelf een paar keer helemaal door te lopen, en de datafiles in je statistische programma te importeren en te inspecteren. Daarmee zie je dan dat je bijvoorbeeld de codes verkeerd hebt ingesteld: je ziet dan dat deze vragen A1, A2, etc als antwoordcodes hebben, en je kunt dit dan in je dataverzamelingssoftware (e.g. LimeSurvey) aanpassen, zodat je ruwe data al in het goede format zit. Daar heb je nu niets meer aan, maar wel handig om te weten voor de volgende keer :-)

Anyway: dus, zorg dat je altijd hercodeert naar nieuwe variabelenamen, als onderdeel van je dataverwerkings-hygiene. Als je vindt dat je dataset daardoor onoverzichtelijk wordt, is dat een symptoom dat je je dataset op de verkeerde manier benaderd, dus da's handig want dan kun je je die benadering gelijk afleren :-)

beantwoord 31 december 2016 door gjp (63,300 punten)
...