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!

Data importeren in syntax SPSS geeft foutmelding

0 leuk 0 niet-leuks
Volgens de opdracht heb ik het syntax bestand en het data bestand op mijn computer opgeslagen. Vervolgens heb ik het syntax bestand kunnen openen in SPSS. Vervolgens heb ik het pad volgens de instructies aangepast. Als ik vervolgens op 'Run' en 'All' druk, komt er een leeg tabblad, zonder de data en de foutmelding: 49 GET DATA (2265) Unrecognized or invalid variable format.  The format is invalid.  For numeric formats, the width or decimals value may be invalid.
Ik heb al geprobeerd het bestand in andere mappen op te slaan en heel precies de locatie, drive, folder en naam opgegeven, maar het helpt niet. Ik dacht dat misschien de manier van opslaan een probleem is: mijn windows wil het bestand alleen opslaan als bijlage (*.*).
Ik heb ook al geprobeerd het via XCell op te slaan, maar ook dat lukt niet.
gevraagd 10 september 2014 in Psychologisch Experiment (PE) door sigrid (120 punten)
bewerkt 10 september 2014 door sigrid
Zou je misschien de syntax ook kunnen geven? Ik weet niet zeker wat hier mis gaat. Is de data geimporteerd vanuit een ander format, of is de data een spss .sav file?
Nog wat aanvullende informatie: het bestand is in windows zo opgeslagen: Achter het databestand staat aangegeven dat het type een csv bestand is. En bij de syntax staat dat het een sps bestand is. Dus dat lijkt wel goed gegaan te zijn.
 

Dat de syntax .sps is moet kloppen. SPSS leest echter niet zondermeer .csv files. Even ter controle een paar vragen:

  1. Is de .csv file geimporteerd via de import wizard en is de syntax de paste van deze opdracht?
  2. Zijn de kolommen op de juiste wijze gescheiden? (Soms is ; het scheidingsteken ipv de punt of komma
Ik begrijp de vragen niet helemaal. Deze informatie kan ik daarop geven: ik kreeg een mail met de twee bestanden, hierna volgt de bijbehorende tekst:
"....Het ene bestand, met de extensie .csv, is een 'Comma Separated Values' bestand, een generiek formaat voor data. Dit kan bijvoorbeeld worden geopend door Excel, maar ook door SPSS. Het andere bestand, met de extensie .sps, is een 'SPss Syntax' bestand, en bevat instructies voor SPSS om het .csv bestand te importeren....."

Beide bestanden moest ik opslaan op de computer, dat heb ik gedaan, gewoon met 'opslaan als', hierboven heb ik daar meer over gezegd.

Het is ook al gelukt om het syntax bestand in spss te openen. Daar gaat de instructie als volgt verder:
* Je past het pad aan (....): dat heb ik ook gedaan, hiervoor de instructies opgevolgd (en meerdere keren opnieuw geprobeerd door op verschillende lokaties op te slaan en deze pad in te voeren).
* en kiest vervolgens in het menu 'Run' de optie 'All'.
Als ik dat doe krijg ik de foutmelding.. Hieronder een deel van de tekst uit SPSS van de syntax:

SET UNICODE ON.

*** Deze regels importeren de data (daarom is het belangrijk om het pad
*** hier toe te voegen).
GET DATA
  /TYPE=TXT
  /FILE="C:\Users\Sigrid\SPSS datafiles\Data Psychologisch Experiment (851359993).csv"
  /DELCASE=LINE
  /DELIMITERS=","
  /ARRANGEMENT=DELIMITED
  /FIRSTCASE=1
  /IMPORTCASE=ALL
  /VARIABLES=

1 Antwoord

1 leuk 0 niet-leuks

Er is tijdelijk een . weggevallen in de syntax. Dit is mijn schuld; ik heb een aanpassing gedaan en de laatste zin van het data-importeer commando (GET DATA) verwijderd. Ik heb er niet bij stilgestaan dat de punt (.) waarmee SPSS-commando's moeten eindigen, dan ook weg is. Mijn excuses dus!

Het commando om data in te laden moet zijn:

GET DATA
  /TYPE=TXT
  /FILE="[GJYP_FILENAME]"
  /DELCASE=LINE
  /DELIMITERS=","
  /ARRANGEMENT=DELIMITED
  /FIRSTCASE=1
  /IMPORTCASE=ALL
  /VARIABLES=
  id F3.0
  type F1.0
  cond F2.0
  cond_sc F1.0
  cond_rv F1.0
  v1 F1.0
  v2 F1.0
  v3 F1.0
  sekse F1.0
  leeftijd F2.0
  v7 F1.0
  v8 F1.0
  v9 F1.0
  v10 F1.0.
CACHE.
EXECUTE.
DATASET NAME PsychologischExperiment WINDOW=FRONT.

De syntax die werd meegemailed naar studenten bevatte tijdelijk de punt op de regel voor CACHE niet (deze heb ik nu rood gemaakt en onderstreept).

Nogmaals mijn excuses dus! Maar nu we toch bezig zijn, kan ik de gelegenheid net zo goed aangrijpen om wat extra uitleg te geven waar je misschien wat aan hebt.

Ik ontdekte wat er fout was door de foutmelding van SPSS te bestuderen. Deze is als volgt:

49 GET DATA (2265) Unrecognized or invalid variable format.  The format is invalid.  For numeric formats, the width or decimals value may be invalid.

Dit betekent dat de foutmelding over het commando op regel 49 van de syntax gaat (en omdat SPSS commando's altijd moeten eindigen met een punt, gaat dit commando dus tot en met regel 72, de regel met CACHE. - de punt achter V10 F10 ontbrak immers).

De foutmelding zegt "je gebruikt een variabele type/formaat dat ik niet ken of dat fout is. Mocht je een numeriek formaat aan het gebruiken zijn, dan kan dit komen omdat de breedte of het aantal decimalen dat je specificeert niet klopt". Dat betekent dat er dus ergens een specificatie van een variabeletype verkeerd is.

Het eerste dat je dan doet is de variabeletypes nakijken Dit zijn de F3.0, F1.0, de F2.0 die je achter elke variabelenaam ziet staan. Als je deze afgaat, zie je dat achter de laatste de . ontbreekt. Daardoor leest SPSS de CACHE op de volgende regel als variabelenaam, waarna SPSS dus een specificatie van het formaat van die variabele verwacht. Die ontbreekt (daar staat immers eindelijk de punt), dus meldt SPSS dat.

Dit betekent dus ook dat als je de namen van de variabelen wil veranderen, zodat V1 bijvoorbeeld privegebruik_telefoon heet, wat ietwat descriptiever is (hoewel ik moet toegeven dat ik niet uit mijn hoofd weet welke V correspondeert met welk gedrag :-)), je dat hier kunt veranderen.

Ik hoop dat ik hiermee mijn verwijderde punt weer een beetje goed kan maken! Nogmaals mijn excuses!!!

beantwoord 11 september 2014 door gjp (64,700 punten)

PS: de [GJYP_FILENAME] wordt door het script veranderd in de filename van de datafile die de gebruiker krijgt toegestuurd! Daar moet het pad dus nog voor geplaatst worden.

...