R Language
Reproduceerbaar R
Zoeken…
Invoering
Met 'Reproduceerbaarheid' bedoelen we dat iemand anders (misschien u in de toekomst) de stappen die u heeft uitgevoerd kan herhalen en hetzelfde resultaat krijgt. Zie de weergave Reproduceerbare onderzoekstaken .
Opmerkingen
Om reproduceerbare resultaten te creëren, moeten alle bronnen van variatie worden vastgesteld. Als bijvoorbeeld een (pseudo) willekeurige getallengenerator wordt gebruikt, moet de seed worden vastgesteld als u dezelfde resultaten opnieuw wilt maken. Een andere manier om variatie te verminderen is om tekst en berekening in hetzelfde document te combineren.
Referenties
Peng, RD (2011). Reproduceerbaar onderzoek in computergebruik. Science, 334 (6060), 1226–1227. http://doi.org/10.1126/science.1213847
Peng, Roger D. Report Writing for Data Science in R. Leanpub, 2015. https://leanpub.com/reportwriting .
Reproduceerbaarheid van gegevens
dput()
en dget()
De eenvoudigste manier om een (bij voorkeur klein) dataframe te delen, is door een basisfunctie dput()
. Het exporteert een R-object in een platte tekstvorm.
Opmerking: zorg ervoor dat u zich in een lege map bevindt waarnaar u kunt schrijven voordat u de onderstaande voorbeeldgegevens maakt. Voer getwd()
en lees ?setwd
als u mappen moet wijzigen.
dput(mtcars, file = 'df.txt')
Vervolgens kan iedereen het precieze R-object in zijn GlobalEnvironment laden met de functie dget()
.
df <- dget('df.txt')
Voor grotere R-objecten zijn er een aantal manieren om ze reproduceerbaar op te slaan. Zie Input en output .
Reproduceerbaarheid van het pakket
Reproduceerbaarheid van pakketten is een veel voorkomend probleem bij het reproduceren van sommige R-code. Wanneer verschillende pakketten worden bijgewerkt, kunnen sommige verbindingen tussen hen verbroken worden. De ideale oplossing voor het probleem is om de afbeelding van de machine van de R-codeschrijver op uw computer te reproduceren op de datum waarop de code werd geschreven. En hier komt het checkpoint
pakket.
Vanaf 17-09-2014 maken de auteurs van het pakket dagelijks kopieën van de hele repository van het CRAN-pakket naar hun eigen mirror-repository - Microsoft R Archived Network. Om problemen met de reproduceerbaarheid van pakketten te voorkomen bij het maken van een reproduceerbaar R-project, hoeft u dus alleen het volgende te doen:
- Zorg ervoor dat al uw pakketten (en R-versie) up-to-date zijn.
- Neem
checkpoint::checkpoint('YYYY-MM-DD')
regel op in uw code.
checkpoint
maakt een map .checkpoint
in uw R_home-map ( "~/"
). In deze technische map worden alle pakketten geïnstalleerd die in uw project worden gebruikt. Dat betekent dat checkpoint
alle .R
bestanden in uw projectmap .R
om alle aanroepen van library()
of require()
op te halen en alle vereiste pakketten te installeren in de vorm die ze op CRAN op de opgegeven datum bestonden.
PRO U bent bevrijd van de reproduceerbaarheid van het pakket.
CONTRA Voor elke opgegeven datum moet u alle pakketten downloaden en installeren die worden gebruikt in een bepaald project dat u wilt reproduceren. Dat kan een tijdje duren.