У меня есть тысячи файлов и папок с одинаковой структурой в главном пути к каталогу.Я пытаюсь улучшить время обработки сценария R, автоматизируя несколько пакетных заданий LSF с использованием аргументов.У меня есть некоторый опыт работы с R, но нет опыта работы с командным файлом и другим языком.
Описание структуры моих папок:
В главном каталоге у меня естьнесколько папок с именами в зависимости от года, и каждая из этих папок содержит другие папки в зависимости от имени модели.Папки с именами на основе модели содержат файлы, которые я вычисляю.
year model
----- A
|----1980|
| ----- B
main directory path -------|
| ----- A
|----1981|
----- B
R скрипт
У меня есть R скрипт, где у меня есть два параметра "год" и "модель", которые будут моими аргументами.Я создаю воспроизводимый пример:
library(raster)
#Creation of raster files that that allow to create files. Here, I only create two rasters that should be place in one folder model.
r1= raster(nrows = 1, ncols = 1, res = 0.5,
xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5,
vals = 0.3)
r2= raster(nrows = 1, ncols = 1, res = 0.5,
xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5,
vals = 0.1)
which_year=arg[1]
years<- c("1980", "1981")
year<- years(which_year)
which_model=arg[2]
models<- c("A" ,"B")
model<- models(which_model)
setwd(file.path("directory_path",year, model)
pr<- stack(r1, r2)
mean<- mean(pr)
writeRaster(mean, file.path("directory_path",year, model_name, 'stackr1r2.tif'))
Пакетный код
Моя задача - реализовать цикл в пакетном скрипте.Я хотел бы автоматизировать подачу пакетных заданий по годам и моделям, что позволит мне перейти в соответствующий каталог.Тем не менее, я понятия не имею, как это сделать.
Я знаю, что структура должна быть примерно такой:
do from model = 1, nmodel
do from year =1, nyear
bsub -n 1 -W 3600 "Rscript mycode.R year model"
enddo
enddo
Спасибо за любую помощь, и я надеюсь, что я был ясен в своих объяснениях, поскольку у меня нет технического словаря!