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!

Hoe verwijs ik op de goede manier naar een bestand in SPSS syntax of een R script?

0 leuk 0 niet-leuks
Als je in een SPSS syntax of een R script een bestand wil openen, moet je aangeven waar dat bestand precies staat - maar hoe doe je dat?
gevraagd 11 april 2013 in Anders door Gjalt-Jorn Peters (46,430 punten)

1 Antwoord

0 leuk 0 niet-leuks

Bestanden op je computer staan opgeslagen op je harde schijf (of soms op een USB stick). Omdat je duizenden bestanden hebt, kun je aangeven waar je zo'n bestand opslaat. Je computer kan vervolgens alleen de bestanden in een bepaalde locatie laten zien. Zo'n locatie heet een pad (path in het Engels).

Locaties van bestanden: het pad (path) naar een bestand
Zo'n pad bestaat uit twee elementen, waarvan het eerste element alleen bestaat in Windows (maar dus niet als je Ubuntu of een Apple gebruikt). Dat eerste element is de drive. De drive refereert in principe naar de fysieke locatie van een bestand, en dat doen ze met letters. Computers hadden vroeger nog geen harde schijven, maar alleen diskettes/floppy's. Die hadden de letters A en B. Daarna kwamen harde schijven; die zijn dus C, en eventueel D, E, etc. Daarna komen CD-roms en/of DVD-roms. Als je dus een computer hebt met 1 harde schijf en een DVD-speler, dan heb je 2 drives: C (de harde schijf) en D (de dvd-speler). USB-sticks komen daar weer na; als je in die computer dus een USB-stick steekt, wordt dat E.


Na de drive kun je bestanden indelen in directories. Die directories bestaan wel in alle operating systems (dus in Windows, Ubuntu, en op Apple PC's). Die directories worden ook wel 'folders' of 'mappen' genoemd. Directories kunnen hierarchisch worden gerangschikt. Mappen kunnen dus andere mappen bevatten. Je kunt op je harde schijf, op de C drive dus, dus een map aanmaken die je OU noemt. IN de OU map kun je een andere map aanmaken die je Bachelorthese noemt, en daarbinnen nog een map die je Data noemt.

In het pad moet je die mapnamen natuurlijk scheiden. Dat gebeurt met een backslash (\) of een forward slash (/). In windows gebruik je een backslash; in andere operating systems zoals Apple en Ubuntu gebruik je een forward slash (en daarom gebruik je in R ook een forward slash; in SPSS gebruik je gewoon backward slashes, tenminste, als je een Windows PC hebt).

Je pad, de locatie van een bestand, bestaat dus uit een aaneenschakeling
van directories, gescheiden door backslashes (\) of forward slashes (/). Als je Windows gebruikt, moet je er bovendien een drive letter voor zetten, met een dubbele punt erna, zodat je computer begrijpt dat je daarna de locatie op die drive gaat specificeren. Met een Apple PC of als je Ubuntu gebruikt, hoef je alleen te zorgen dat je het pad start met een forward slash (/).

De map die ik net beschreef heet voluit dus:

C:\OU\Bachelorthese\Data

Zoals je ziet gebruik ik een Windows PC. Dit pad kan ik zo in SPSS syntax gebruiken, maar als ik dit pad in R zou willen gebruiken, zou het zo worden:


C:/OU/Bachelorthese/Data

R gebruikt immers forward slashes in plaats van de backslashes die standaard zijn in Windows.

Standaard mappen in Windows en Apple
Nu is het zo dat Windows en Apple al een aantal standaard mappen voor je aanmaken. In Windows staat de map met documenten bijvoorbeeld meestal op de C drive, in de map Users, en dan in een map met de naam van je gebruikersnaam. In mijn geval heet de gebruiker Gjalt-Jorn. Het pad naar mijn map 'Documenten' is dus

C:\Users\Gjalt-Jorn\Documents

Als ik een Apple PC had gehad, zou het pad zo zijn geweest:

/Users/Gjalt-Jorn/Documents

Als ik dus in die standaard folder een folder heb die SPSS heet, en daar mijn datafile heb staan, dan is het volledige pad:


C:\Users\Gjalt-Jorn\Documents\SPSS\mijndata.sav

Of op een Apple PC:

/Users/Gjalt-Jorn/Documents/SPSS/mijndata.sav

Gelukkig hoef je niet je hele harde schijf af te zoeken om te ontdekken waar je bestand precies staat. Je kunt op het bestand rechtsklikken (als je een Apple hebt en geen rechter muisknop hebt, doe dan CTRL-klik) en dan voor 'Properties' (of 'Eigenschappen') kiezen, als je een Windows PC hebt, of voor 'Get Info' of 'Show Info' (of 'Toon info') als je een Apple PC hebt. Het pad naar je bestand staat dan bij 'Location' op Windows PC's en 'Where' op Apple PC's.

Dit pad plaats je vervolgens voor de bestandsnaam (weer gescheiden door een backslash of een slash), en dan heb je de complete verwijzing naar je bestand. Als je op een Windows PC werkt, en je naar het bestand wil verwijzen in een R scriptje, moet je niet vergeten om de backslashes te vervangen door forward slashes!

beantwoord 11 april 2013 door Gjalt-Jorn Peters (46,430 punten)

Voorbeeld in SPSS
Als je een databestand in SPSS wilt inlezen, dan doe je dat met het syntax commando GET DATA. Dit wordt gevolgd door een aantal parameters (die beginnen steeds weer met een slash), en een van die parameters is /FILE="", waarbij tussen de dubbele aanhalingstekens het bestand staat dat moet worden geopend. Tussen die aanhalingstekens moet dus het pad staan, gevolgd door de bestandsnaam. In Windows kunnen de bovenste vier regels van het GET DATA commando bijvoorbeeld zo worden (dit is voor het inlezen van data in textbestand formaat, zoals je bijvoorbeeld bij Psychologisch Experiment gebruikt, of wanneer je data inleest die uit LimeSurvey komt):

GET DATA
  /TYPE=TXT
  /FILE="C:\Users\Gjalt-Jorn\Documents\SPSS\mijndata.csv"

  /DELCASE=LINE

En op een Apple PC of in Ubuntu zou het zo worden:

GET DATA
  /TYPE=TXT
  /FILE="/Users/Gjalt-Jorn/Documents/SPSS/mijndata.csv"

  /DELCASE=LINE

Voorbeeld in R
Als je een databestand in R wil inlezen, doe je dat met het commando read.spss (als je een SPSS datafile wil inlezen; zie voor uitgebreide uitleg http://oupsy.nl/help/28/hoe-krijg-ik-data-van-spss-in-r) of met read.table (als je data in textfile formaat wil inlezen). Om een SPSS file in te lezen, gebruik je op een Windows PC dus:

dat <- read.spss("C:\Users\Gjalt-Jorn\Documents\SPSS\mijndata.sav", use.value.labels=FALSE, to.data.frame=TRUE);

En op een Apple of Ubuntu systeem:

dat <- read.spss("/Users/Gjalt-Jorn/Documents/SPSS/mijndata.sav", use.value.labels=FALSE, to.data.frame=TRUE);

Als je data wil inlezen in een gewoon tekstformaat, gebruik je op een Windows PC:

dat <- read.table("C:\Users\Gjalt-Jorn\Documents\SPSS\tab gescheiden datafile.txt", header=TRUE, sep = "\t");

En op een Apple of Ubuntu systeem wordt dat dus:

dat <- read.table("/Users/Gjalt-Jorn/Documents/SPSS/tab gescheiden datafile.txt", header=TRUE, sep = "\t");

(houdt er rekening mee dat je met deze twee commando's data inleest waarbij elke kolom in je datafile is gescheiden door een tab. Data kan ook gescheiden zijn door een komma, een punkomma, of zelfs een spatie. De "\t" geeft aan hoe je data is gescheiden, dus die kun je vervangen door "," of door ";" als je data in een ander formaat is opgeslagen)

...