8  Je werk opslaan

Je hebt net, na 20 keer proberen, een moeilijke baas verslagen in een computerspel. Of je hebt zojuist uren gezwoegd aan een presentatie of paper voor school. Wat wil je in zo’n situatie zeker niet voorhebben? Juist, dat er iets fout loopt met je computer en dat je al je voortgang kwijt bent.

In RStudio is dat natuurlijk ook zo. Daarom is het belangrijk om je werk regelmatig op te slaan. Zo kan je de volgende keer gewoon verdergaan waar je was gestopt. Hier zal je leren hoe je je werk kan opslaan in RStudio.

De uitleg is lichtjes verschillend voor Windows en macOS, dus kies de juiste pagina in het overzicht aan de linkerkant of klik op het pijltje naar rechts tot je op de juiste pagina terechtkomt. Onderaan elke pagina vind je een samenvatting.


8.1 Windows

8.1.1 Een script opslaan

In de afbeelding hieronder vind je een script waar je lang aan hebt gezwoegd. Tijd om je voortgang eens op te slaan. Hoe kan je dat doen? Je hebt waarschijnlijk wel al eens een Word-document of een Powerpoint-presentatie gemaakt en opgeslagen. Een script opslaan werkt op dezelfde manier.


script opslaan 1


Een script opslaan doe je met het blauwe icoontje aan de bovenkant van het script. Op de afbeelding hieronder staat het aangeduid met de rode pijl. Een andere mogelijkheid is tegelijk de toetsen CTRL en S indrukken.


script opslaan 2


Kies een map op je computer waar je het script wil opslaan. Hier kiezen we voor C:/Gebruikers/michi/Documenten/UGent. Geef je script een herkenbare naam, zoals hier “basketbal.R”. De extensie “.R” wijst erop dat het om een R-script gaat.


script opslaan 3


Als je succesvol hebt opgeslagen, wordt het icoontje bijna onzichtbaar, zoals hieronder. Dat wil zeggen dat al je werk is opgeslagen.


script opslaan 4


Als je nu opnieuw een wijziging aanbrengt in je R-code, dan merk je dat het icoontje opnieuw zichtbaar wordt. Logisch, want er zijn nieuwe wijzigingen in je code die kunnen worden opgeslagen.


script opslaan 5


Als je nu opnieuw opslaat, dan wordt het vorige bestand gewoon overschreven. Wil je je script toch op een andere locatie opslaan, dan kan dat via File > Save as…


script opslaan 6


8.1.2 Een dataframe opslaan

Bekijk de onderstaande video. Onder de video vind je dezelfde uitleg in tekstvorm.



Behalve een script kan je ook een dataframe opslaan. Je gebruikt daarvoor de functie write.csv().

Bekijk de onderstaande code. Er worden drie vectoren aangemaakt: voornamen, leeftijden en rugnummers.

voornamen <- c("Laura", "Danira", "Stefanie", "Leyla", "Chelsy")

leeftijden <- c(19, 22, 18, 22, 24)

rugnummers <- c("4", "12", "7", "76", "33") 


Deze vectoren worden nu samengebracht in een dataframe genaamd mijn_team:

mijn_team <- data.frame(voornamen, leeftijden, rugnummers) 


Je hebt dus data van drie variabelen samengebracht in één object: mijn_team. Nu wil je dit object in zijn geheel opslaan op je computer. Dat kan met volgende code:

write.csv(mijn_team, file = "mijn_eerste_dataframe.csv", row.names = FALSE) 


Deze functie maakt een csv-bestand1 aan op je computer. Dat is een type bestand dat perfect geschikt is om onderzoeksgegevens te bevatten.

  • Het eerste argument van de functie write.csv() bepaalt wat er in het csv-bestand moet terechtkomen.

  • Het tweede argument legt de naam vast van het nieuwe bestand.

  • Het laatste argument is voorlopig minder belangrijk.


De vraag is: waar is dat csv-bestand nu eigenlijk opgeslagen? Als je het later opnieuw nodig hebt, in welke map op je computer moet je dan gaan zoeken?

Dat kan je achterhalen met de functie getwd(). Die functie geeft je de huidige werkmap of working directory. Dat is een map op je computer die gelinkt is met je activiteiten in RStudio. Heel wat functies maken gebruik van die map om

  • ofwel zaken op te slaan vanuit RStudio: bijvoorbeeld een dataframe opslaan met de functie write.csv()

  • ofwel omgekeerd, bestanden in te lezen naar RStudio: bijvoorbeeld een dataframe inlezen met de functie read.csv()


Je huidige werkmap is bijvoorbeeld:

getwd()
[1] "C:/Gebruikers/michi/Documenten"


Dat is misschien niet de map waar je het dataframe wil bewaren2. De vraag die waarschijnlijk op je lippen brandt (of niet, soms?) is: Hoe kan je de working directory aanpassen? Dat bekijken we in het volgende onderdeel.


8.1.3 Een working directory kiezen

De functie write.csv() slaat je dataframe op in de huidige working directory. Om te achterhalen welke map op dit moment je working directory is, kan je volgend commando gebruiken:

getwd() 


Je krijgt dan een locatie op je computer als output, bijvoorbeeld:

[1] "C:/Gebruikers/michi/Documenten"


RStudio heeft die map automatisch gekozen, maar misschien wil je je dataframe helemaal niet op die plaats opslaan. Dan moet je de working directory veranderen. De makkelijkste manier om dat te doen is door bovenaan te klikken op Session. Ga vervolgens naar Set Working Directory en klik op Choose Directory, zoals je in de afbeelding hieronder kan zien.


wd kiezen in menu


In het venster dat verschijnt kies je een bestaande map, of maak je een nieuwe, die vanaf nu als working directory zal dienen.


wd kiezen in mappen


Dubbelcheck even of de working directory inderdaad aangepast is:

getwd()
[1] "C:/Gebruikers/michi/Documenten/Statistiek/Werken met R"


Gelukt! Dat is de makkelijkste manier om je working directory te veranderen, maar er is een vervelend nadeel aan verbonden. Als je later opnieuw het script opent in R, dan zal de working directory opnieuw veranderd zijn naar de oude, automatisch gekozen map (in ons geval was dat C:/Gebruikers/michi/Documenten).

Ambetant! Wat nu? Is daar een goede oplossing voor? Dat leer je in het volgende onderdeel.


8.1.4 De functie setwd() gebruiken

Pro tip: wanneer je een nieuw script start, volg dan altijd eerst de onderstaande 5 stappen.


1. Kies een working directory via Session > Set Working Directory > Choose Directory.


wd kiezen in menu


2. Voer het commando getwd() uit.

3. In de console verschijnt nu de locatie van je working directory. Selecteer die locatie, rechtsklik erop en kopieer.


wd kiezen in menu


4. Typ nu helemaal bovenaan in je script setwd()

5. Plaats tussen de haakjes van de functie setwd() de locatie die je in stap 3 hebt gekopieerd. Vergeet niet om de locatie ook tussen aanhalingstekens te zetten. Sla je script op.


wd kiezen in menu


Het kan een beetje omslachtig lijken, maar je raakt het snel gewoon om altijd een script te beginnen met de functie setwd().

Het voordeel aan deze manier van werken is dat je script nu bijna vanzelf gelinkt zal zijn aan de gewenste map op je computer. Het enige wat je moet doen is de regel code

setwd("C:/Users/MijnNaam/Documents/Statistiek/Werken met R")

uitvoeren wanneer je het script opent om erin verder te werken. Wanneer je nu bijvoorbeeld een dataframe wil opslaan met de functie write.csv() dan zal dit bestand automatisch in de working directory terechtkomen. Er zijn nog heel wat andere functies behalve write.csv() waarvoor dat handig is.

Nog een laatste opmerking: het is meestal een goed idee om je script zelf ook op te slaan in diezelfde map, de working directory. Om het allemaal simpel en overzichtelijk te houden…


8.1.5 Samengevat

Je werk opslaan in R: Easy peasy, right? Maar mocht het toch een beetje verwarrend zijn, vatten we hier nog eens kort samen.

Hoe kan je een script opslaan?

Dit werkt gelijkaardig aan bijvoorbeeld een Word-document opslaan: wanneer je een nieuw script voor de eerste keer opslaat, moet je een map kiezen. Vanaf dan kan je gewoon opslaan met het blauwe diskette-icoontje of met de toetsen CTRL + S. Dit zal altijd op dezelfde locatie gebeuren en het vorige bestand overschrijven. (Wil je je script toch op een andere locatie opslaan, dan kan je onder File kiezen voor Save as …)

Een dataframe opslaan met de functie write.csv()

Als je onderzoeksdata in een dataframe hebt samengebracht, kan het handig zijn om dat object (het dataframe dus) op je computer op te slaan. Dat kan je in je script doen met de functie write.csv(), bijvoorbeeld zo:

write.csv(mijn_df, file = "mijn_eerste_dataframe.csv", row.names = FALSE)


Je hebt hier geen locatie (map op je computer) gekozen om het csv-bestand in te creëren. Het bestand wordt automatisch aangemaakt in je working directory (zie hieronder).

Een working directory vastleggen met de functie setwd()

Een working directory of werkmap is een locatie op je computer die gelinkt is met je activiteiten in RStudio. Heel wat functies maken gebruik van die map om

  • ofwel zaken op te slaan vanuit RStudio: bijvoorbeeld een dataframe opslaan met de functie write.csv()
  • ofwel omgekeerd, bestanden in te lezen naar RStudio: bijvoorbeeld een dataframe inlezen met de functie read.csv()


Een working directory vastleggen kan je met de functie setwd(), bijvoorbeeld:

setwd("C:/Users/MijnNaam/Documents/Statistiek/Werken met R")


Het is een goede gewoonte om een script altijd te starten met de functie setwd().


8.2 macOS

8.2.1 Een script opslaan

In de afbeelding hieronder vind je een script waar je lang aan hebt gezwoegd. Tijd om je voortgang eens op te slaan. Hoe kan je dat doen?


script in RStudio


Een script opslaan doe je met het blauwe icoontje aan de bovenkant van het script. Op de afbeelding hieronder staat het aangeduid met de rode pijl. Het kan ook via File > Save.


opslaan icoon


Kies een map op je computer waar je het script wil opslaan. Hier kiezen we bijvoorbeeld voor /Users/jouwnaam/STATISTIEK. Geef je script een herkenbare naam.


opslaan mappen


Als je succesvol hebt opgeslagen, wordt het icoontje bijna onzichtbaar, zoals hieronder. Dat wil zeggen dat al je werk opgeslagen is.


opslaan icoon onzichtbaar


Als je nu opnieuw een wijziging aanbrengt in je R-code, dan merk je dat het icoontje opnieuw zichtbaar wordt. Logisch, want er zijn nieuwe wijzigingen in je code die kunnen worden opgeslagen.


opslaan nieuwe wijzigingen


8.2.2 Een dataframe opslaan

Bekijk de onderstaande video. Onder de video vind je dezelfde uitleg in tekstvorm.



Behalve een script kan je ook een dataframe opslaan. Je gebruikt daarvoor de functie write.csv().

Bekijk de onderstaande code. Er worden drie vectoren aangemaakt: voornamen, leeftijden en rugnummers.

voornamen <- c("Laura", "Danira", "Stefanie", "Leyla", "Chelsy")

leeftijden <- c(19, 22, 18, 22, 24)

rugnummers <- c("4", "12", "7", "76", "33")


Deze vectoren worden samengebracht in een dataframe genaamd mijn_team:

mijn_df <- data.frame(voornamen, leeftijden, rugnummers)


Je hebt dus data van drie variabelen samengebracht in één object: mijn_team. Nu wil je dit object in zijn geheel opslaan op je computer. Dat kan met volgende code:

write.csv(mijn_team, file = "basketbal.csv", row.names = FALSE)


Deze functie maakt een csv-bestand3 aan op je computer. Dat is een type bestand dat perfect geschikt is om onderzoeksgegevens te bevatten.

  • Het eerste argument van de functie write.csv() bepaalt wat er in het csv-bestand moet terechtkomen.
  • Het tweede argument legt de naam vast van het nieuwe bestand.
  • Het laatste argument is hier minder belangrijk.


Grote vraag is: waar is dat csv-bestand nu eigenlijk opgeslagen? Als je het later opnieuw nodig hebt, in welke map op je computer moet je dan gaan zoeken?

Dat kan je achterhalen met de functie getwd(). Die functie vertelt je de locatie op je computer waarmee je R-sessie gelinkt is. Die noemen we de werkmap of working directory.

getwd()
[1] "/Users/jouwnaam/Documents"


Dat is misschien niet de locatie waar je het dataframe wilde opslaan4. In dat geval zal je de working directory willen veranderen.

De vraag die waarschijnlijk op je lippen brandt (of niet, soms?) is: Hoe kan je die working directory aanpassen? Meer daarover in het volgende onderdeel!


8.2.3 Een working directory kiezen

Om te achterhalen welke map op dit moment je working directory is, kan je volgend commando gebruiken:

getwd()


Je krijgt dan een locatie op je computer als output, bijvoorbeeld:

[1] "/Users/jouwnaam/Documents"

 

RStudio heeft die map automatisch gekozen, maar misschien wil je je huidige script helemaal niet op die plaats opslaan. Dan moet je je working directory veranderen. De makkelijkste manier om dat te doen is door bovenaan te klikken op Session. Ga vervolgens naar Set Working Directory en klik op Choose Directory, zoals je in de afbeelding hieronder kan zien.


wd kiezen via menu


In het venster dat nu verschijnt kies je een bestaande map, of maak je een nieuwe, die vanaf nu als working directory zal dienen.


wd map kiezen


Dubbelcheck even of de working directory inderdaad aangepast is:

getwd()
[1] "/Users/jouwnaam/Statistiek"


Gelukt!

Dat is de makkelijkste manier om je working directory te veranderen, maar er is een vervelend nadeel aan verbonden. Als je later opnieuw het script opent in R, dan zal de working directory opnieuw veranderd zijn naar de oude, automatisch gekozen map (in ons geval was dat /Users/jouwnaam/Documents).

Ambetant! Wat nu? Is daar een goede oplossing voor? Dat leer je in het volgende onderdeel.


8.2.4 De functie setwd() gebruiken

Pro tip: wanneer je een nieuw script start, volg dan altijd eerst de onderstaande 5 stappen.

1. Kies een working directory via Session > Set Working Directory > Choose Directory.


wd via menu


2. Voer het commando getwd() uit.

3. In de console verschijnt nu de locatie van je working directory. Selecteer die locatie, rechtsklik erop en kopieer.


kopieer wd console


4. Typ nu helemaal bovenaan in je script setwd().

5. Plaats tussen de haakjes van de functie setwd() de locatie die je in stap 3 hebt gekopieerd. Vergeet niet om de locatie ook tussen aanhalingstekens te zetten.


setwd()


Het kan een beetje omslachtig lijken, maar je raakt het snel gewoon om altijd een script te beginnen met de functie setwd().

Het voordeel aan deze manier van werken is dat je script nu bijna vanzelf gelinkt zal zijn aan de gewenste map op je computer. Het enige wat je moet doen is de code

setwd("/Users/jouwnaam/STATISTIEK")

uitvoeren wanneer je het script opent om erin verder te werken. Wanneer je nu bijvoorbeeld een dataframe wil opslaan met de functie write.csv() dan zal dit bestand automatisch in de working directory terechtkomen. Er zijn nog heel wat functies behalve write.csv() waarvoor dat handig is.

Nog een laatste opmerking: het is meestal een goed idee om je script ook op te slaan in diezelfde map, de working directory. Kwestie van het allemaal simpel en overzichtelijk te houden…


8.2.5 Samengevat

Je werk opslaan in R: Easy peasy, right? Maar mocht het toch een beetje verwarrend zijn, vatten we hier nog eens kort samen.

Hoe kan je een script opslaan?

Dit werkt gelijkaardig aan bijvoorbeeld een Word-document opslaan: wanneer je een nieuw script voor de eerste keer opslaat, moet je een map kiezen. Vanaf dan kan je gewoon opslaan met het blauwe diskette-icoontje of via File > Save. Dit zal altijd op dezelfde locatie gebeuren en het vorige bestand overschrijven. (Wil je je script toch op een andere locatie opslaan, dan kan je onder File kiezen voor Save as …)

Een dataframe opslaan met de functie write.csv()

Als je je onderzoeksdata in een dataframe hebt samengebracht, kan het handig zijn om dat object (het dataframe dus) op je computer op te slaan. Dat kan je in je script doen met de functie write.csv(), bijvoorbeeld zo:

write.csv(mijn_df, file = "mijn_eerste_dataframe.csv", row.names = FALSE)


Je hebt hier geen locatie (map op je computer) gekozen om het csv-bestand in te creëren. Het bestand wordt automatisch aangemaakt in je working directory (zie hieronder).

Een working directory vastleggen met de functie setwd()

Een working directory of werkmap is een locatie op je computer die gelinkt is met je activiteiten in RStudio. Heel wat functies maken gebruik van die map om

  • ofwel zaken op te slaan vanuit RStudio: bijvoorbeeld een dataframe opslaan met de functie write.csv()

  • ofwel omgekeerd, bestanden in te lezen naar RStudio: bijvoorbeeld een dataframe inlezen met de functie read.csv()


Een working directory vastleggen kan je met de functie setwd(), bijvoorbeeld:

setwd("/Users/jouwnaam/Statistiek")


Het is een goede gewoonte om een script altijd te starten met de functie setwd().



  1. ‘csv’ staat voor ‘comma-separated value’.↩︎

  2. Het is trouwens ook niet noodzakelijk dezelfde locatie als waar je eerder het script hebt opgeslagen, namelijk C:/Gebruikers/michi/Documenten/UGent↩︎

  3. ‘csv’ staat voor ‘comma-separated value’.↩︎

  4. Het is trouwens ook niet noodzakelijk dezelfde locatie als waar je eerder het script hebt opgeslagen, namelijk /Users/jouwnaam/STATISTIEK↩︎