J'ai une série de scripts R pour effectuer les multiples étapes de l'analyse des données dont j'ai besoin. Certains d'entre eux prennent beaucoup de temps et créent vraiment de gros objets. J'ai remarqué que si je les ai tous ramenés à la suite (via un script main.R
), le traitement pour les étapes ultérieures prend beaucoup plus de temps que si je source un script, enregistrer ce dont j'ai besoin, et redémarrer R pour le suivant étape (chargement des données dont j'ai besoin). Je me demandais s'il y avait un moyen , via Rscript
ou un script Bash
peut-être, que je pourrais réaliser cela. Il devrait y avoir des objets qui persistent pour les 2 premiers scripts (qui chargent mes données externes et créent les objets qui seront utilisés pour toutes les autres étapes ). Je suppose que je pourrais aussi juste les sauvegarder et les charger dans d'autres scripts.Exécuter plusieurs scripts R avec quitter/redémarrer entre les deux sur Linux
(Je voudrais également passer un certain nombre d'arguments nommés à ce script, que je pense que je peux trouver sur d'autres SO messages et peut utiliser quelque chose comme optparse
.)
Ainsi, le script ressemblerait à quelque chose comme ceci, je pense:
#! /bin/bash
Rscript 01_load.R # Objects would persist, ideally
Rscript 02_create_graphs.R # Objects would persist, ideally
Rscript 03_random_graphs.R # contains code to save objects
#exit R
Rscript 04_permutation_analysis.R # would have to contain code to load data
#exit
Et ainsi de suite. Y a-t-il une solution à cela? J'utilise R 3.2.2
sur 64 bits CentOS 6. Merci.
Merci pour votre réponse. J'aurais dû mentionner que j'ai essayé d'utiliser 'gc()'. Bien que cela aide en termes de gestion de la mémoire, cela ne semble pas aller aussi vite que de lancer une session propre. Bien que je n'ai pas fait de tests approfondis à ce sujet. –