le système() Je suis en cours d'exécution rstudio dans Windows 7. J'ai écrit un script maître qui génère 57 nouveaux scripts R, chacun avec des commandes pour exécuter une fonction basée sur deux paramètres:L'exécution de plusieurs scripts R en utilisant la commande
vector1 <- c(1:19)
vector2 <- c(1:3)
d'abord, le script maître utilise deux boucles for (un à l'aide de l'index 'abc' pour vector1, l'un à l'aide de l'indice 'def' pour vector2) pour générer chacun des 57 scripts dans mon répertoire de travail qui prennent la convention de nom de fichier suivante:
run_inference_<<vector1[abc]>>_<<vector2[def]>>.R
Cette partie s'exécute avec succès - chacun des 57 scripts est généré avec les commandes correctes à l'intérieur. Mon répertoire de travail contient maintenant les fichiers run_inference_1_1.R, run_inference_1_2.R, etc.
La dernière chose que je veux faire est de lancer ensuite tous les 57 scripts de mon maître, et en même temps. J'ai essayé ce qui suit à l'intérieur de la boucle for:
system(paste0("Rscript run_inference_",abc, "_", def, ".R"),wait = F)
Cela ne fonctionne pas. Cependant, si j'ouvre l'un des 57 scripts générés et que je l'exécute, j'obtiens le résultat souhaité de ce script. Cela me dit que le problème est dans la commande system() que j'ai écrite.
Chacun des 57 scripts ne sera pas (encore) intensif en calcul, et le test que je veux faire maintenant devrait prendre 2 minutes sur mon PC. Comment puis-je modifier ma commande system() pour exécuter les 57 scripts simultanément, s'il vous plaît?
'sapply (paste0 ("RSCRIPT run_inference _", abc, "_", def, ".R"), système, attendez = F)' Aucun commentaire si si la production et l'exécution 57 script est un bon idée ou non pour votre problème. – Vlo
Je fais écho à l'inquiétude tacite de Vlo selon laquelle il y a probablement une meilleure façon de le faire. Pourquoi voulez-vous écrire les scripts au lieu de faire quelque chose comme avoir une fonction qui prend l'entrée requise et exécute juste cette fonction avec les 57 entrées différentes que vous désirez? – Dason
J'ai un PC bien doté qui devrait être capable de gérer des tâches très intensives, et des collègues plus familiers avec l'informatique parallèle m'ont dit que cette tâche devrait être faisable étant donné ce qui est disponible. Nous verrons! – tfmunkey