Esiste una posizione predefinita in cui un pacchetto R può memorizzare dati memorizzati nella cache? I dati dovrebbero persistere tra le sessioni. Stavo pensando di creare una sottodirectory di ${R_LIBS_USER}/package_name
, ma non sono sicuro se questo è portatile e se questo è "permesso" se il mio pacchetto è installato a livello di sistema.Esiste una posizione permanente che è sempre scrivibile che può essere utilizzata come cache di dati da un pacchetto?
L'idea è la seguente: Creare uno script di R mydata.R
nel data
sottodirectory del pacchetto, che dovrebbe essere eseguito chiamando data(mydata)
(in base alla documentazione di data()
). Questo script caricherà i dati da Internet e li memorizzerà nella cache, se non è stato precedentemente memorizzato nella cache. (Se i dati sono già stati memorizzati nella cache, verrà utilizzata la cache.) Inoltre, verrà fornita una funzione per invalidare la cache e/o per verificare se una versione più recente dei dati è disponibile online.
Questo è dalla documentazione di data()
:
Attualmente, quattro formati di file di dati sono supportati:
file che finiscono '.R' o '.r' sono fonte() d in, con la directory di lavoro R modificata temporaneamente nella directory contenente il rispettivo file. (Dati garantisce che il pacchetto utils è collegata, nel caso fosse stato eseguito tramite utils :: dati.)
...
Infatti, creando un file fortytwo.R
nella data
sottodirectory di un pacchetto con il seguente contenuto:
fortytwo = data.frame(answer=42)
ed eseguendo data(fortytwo)
crea una variabile frame di dati fortytwo
. Ora la domanda è: dove sarebbe fortytwo.R
memorizzare i dati se fosse difficile da calcolare?
EDIT: Sto pensando di creare due pacchetti: un pacchetto "dati" che fornisce i dati e un pacchetto "codice" che opera su di esso. La domanda riguarda il pacchetto "dati": dove può archiviare i file in una memoria per utente in modo che sia persistente nelle sessioni R ed è accessibile da diversi progetti R?
Correlati: Package that downloads data from the internet during installation.
Si potrebbe voler dare un'occhiata a https://github.com/hadley/rappdirs - è una porta di AppDirs, che è una libreria python che tenta di trovare le directory giuste in modo specifico del sistema operativo. – hadley
Solo cercando di chiarire: intendi dove possono essere memorizzati i dati dopo che sono stati elaborati da uno script R? In altre parole, la tua domanda riguarda davvero i dati del pacchetto di dati o i dati che vengono generati come output da qualsiasi elaborazione che ha avuto luogo? * Suona * come il secondo. – A5C1D2H2I1M1N2O1R2T1
@hadley: C'è una possibilità che questo apparirà su CRAN in qualunque momento presto? Se non c'è un modo specifico per farlo (come metterlo in una sottodirectory di $ {R_USER_LIBS}), userò volentieri il tuo pacchetto. – krlmlr