
Мне нужно прочитать несколько скриптов R (до 3, т.е. tr1.R, tr2.R, tr3.R).
Ниже приведен скрипт bash для чтения одного скрипта.
#!/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
Я попробовал следующее, как предложил@кас
#!/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**
Далее работа отправляется с использованием
for i in {1..3} ; do
qsub -o "default.$i.out" -e "errorfile$i" -v i script.sh
done
Это не удалось прочитатьRscript ~/tr"$i".R.
решение1
Это быстро и грязно:
#!/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
решение2
А как насчет решения этой задачи на языке R следующим образом:
комбинированный.R:
source (tr1.R)
source (tr2.R)
source (tr3.R)
или вот так.
комбинированный.R:
for (i in c(1:9)) {
filename <- paste ("tr", i, ".R", sep="")
if (file.exists (filename)) {
source (filename)
}
}
И затем вы можете загрузить 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
О, теперь я вижу, что вы хотите запускать задания параллельно. Решение, которое я опубликовал, не запускает задания параллельно, но я оставлю ответ здесь. Может быть, кто-то найдет его полезным. Может быть, вы можете применить что-то вроде этогоhttps://www.blasbenito.com/post/02_parallelizing_loops_with_r/или этоhttps://stackoverflow.com/questions/38318139/запустить-a-for-loop-in-parallel-in-r.