
Tengo varios scripts de R para leer (hasta 3, es decir, tr1.R, tr2.R, tr3.R).
El script bash para leer un solo script se proporciona a continuación
#!/bin/bash
#PBS -l nodes=1:ppn=10,walltime=00:05:00
#PBS -M
#PBS -m e
module load R/4.0
Rscript ~/tr1.R
Intenté lo siguiente según lo sugerido por@cas
#!/bin/bash
#PBS -l nodes=1:ppn=10,walltime=00:05:00
#PBS -M
#PBS -m e
module load R/4.0
**Rscript ~/tr"$i".R**
Además, el trabajo se envía utilizando
for i in {1..3} ; do
qsub -o "default.$i.out" -e "errorfile$i" -v i script.sh
done
esto no se pudo leerRscript ~/tr"$i".R.
Respuesta1
Esto es rápido y sucio:
#!/bin/bash
echo -e "Printing script.......\n"
y=0
for (( y=0; y <= 9; y++ ))
do
echo "file tr$y.R contents: "
cat tr$y.R
echo ""
done
Respuesta2
¿Qué tal resolver eso en R así?
combinado.R:
source (tr1.R)
source (tr2.R)
source (tr3.R)
o así.
combinado.R:
for (i in c(1:9)) {
filename <- paste ("tr", i, ".R", sep="")
if (file.exists (filename)) {
source (filename)
}
}
Y luego puedes cargar combined.R
:
#!/bin/bash
#PBS -l nodes=1:ppn=10,walltime=00:05:00
#PBS -M
#PBS -m e
module load R/4.0
Rscript ~/combined.R
Oh, ahora veo que quieres ejecutar trabajos en paralelo. La solución que publiqué no ejecuta trabajos en paralelo, pero dejaré la respuesta aquí. Quizás alguien lo encuentre útil. Quizás puedas aplicar algo como esto.https://www.blasbenito.com/post/02_parallelizing_loops_with_r/o estohttps://stackoverflow.com/questions/38318139/run-a-for-loop-in-parallel-in-r.