Habár írtam már pár automatikusan futó R szkriptet, mindig fejtörést okozott a munkakönyvtár beállítása. Hacsak nem eleve a szükséges mappában indult el az Rscript (márpedig a cron a $HOME-ban indítja őket), minden egyes kód a
setwd("kódot/tartalmazó/mappa")
paranccsal kezdődött. Ezzel a kénylemetlenséggel egészen addig együtt tudtam élni, amíg nem kellett megosztani a kódot; ezzel a módszerrel ugyanis amellett, hogy mások gépén nem működik, azt is megmutatja, hogy én hol tartom az adott projekt fájljait, amit nem tartok szerencsésnek.
Az Rscript programnak átadhatunk különböző paramétereket, ezek közül az egyik első a futtatandó szkript elérési útja. Az argumentumokat a commandArgs függvény visszaadja, amik közül ki lehet szedni a futtatott fájl címét – így azt már csak a dirname függvénynek kell odaadni, hogy megkapjam az eredeti kérdésre a választ. Az egészet becsomagoltam egy függvénybe:
Mostmár minden szkript első sora ugyan az:
setwd(get_script_dir())
Via:: Hol a szkript?