r - Skrive en OS-agnostisk filsti

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har fundet mig selv at arbejde med nogle R-filer på både Windows og OSX.


I næsten alle de R-filer, jeg skaber til dette projekt, er der et behov for at importere nogle data fra filsystemet.


For at gøre dette på en måde, der fungerer for begge OS'er (OS'er?) Jeg har noget som dette øverst på de fleste filer:


if (Sys.info()['sysname'] == 'Windows'){
    project\_path <- "C:/Users/Bilbo/project\_folder"
} else { 
    project\_path <- "~/project\_folder"


Det er dejligt at ikke implementere dette separat i hver fil. En ide er at skrive en enkelt funktion get\_folder\_path(), der returnerer den relevante vej, men problemet er, at jeg skal importere filen med den funktion med [[source(), som kræver, at jeg beder om Sys.info()['sysname'], at besejre formålet.


Det forekommer overdrevligt at skrive en pakke med kun denne funktion (selvom jeg aldrig har brugt roxygen og det kan være en god øvelse), så jeg bare kan gøre library(agnosticImporter).


Hvilke lyse ideer?

Bedste reference


Jeg har ikke held med kommentarerne, så jeg skrev en lille pakke til dette formål. [8]


Funktionen get\_home\_dir() fra agnOStic returnerer 'C: \\ Users \\ Bilbo \\' på Windows og '~/' på Mac eller Linux. [9]