Уважаемые программисты R, я пытаюсь преобразовать al oop в формулировку типа применения при использовании определенной функции, называемой диссверером. Это функция уменьшения масштаба, которая работает с растровыми данными. он принимает грубый ввод rasterLayer и стек ковариат и создает объект модели, который включает версию входного rasterLayer с точным разрешением, например:
library(dissever)
library(raster)
mod.fine = dissever(
coarse = edgeroi$carbon, # coarse resolution raster
fine = edgeroi$predictors, # stack of fine resolution covariates
method = "lm", # regression method used
p = 0.05, # proportion of pixels sampled for training regression model
)
Я хочу использовать стек грубых входов слои, а не один растровый слой. Я могу сделать это, используя al oop, чтобы соответствовать модели, которая использует один и тот же стек предикторов с точным разрешением для каждого слоя грубого стека, и я могу сохранить результаты в списке. Например:
#create the stack of coarse layers
Stack.coarse = stack(edgeroi$carbon,edgeroi$carbon*2)
test = list()
for(i in 1:nlayers(Stack.coarse)) {
tmp=dissever(coarse=Stack.coarse[[i]],fine=edgeroi$predictors,method="lm",p=0.05)
test[[i]]=tmp
}
Но я бы хотел избежать циклов и вместо этого хотел бы использовать функции применения. Стеки являются особым типом списка и при необходимости могут быть преобразованы в список с помощью as.list (stack.name)
Однако я не могу найти правильный синтаксис, который позволяет мне вместо этого использовать lapply или mapply of al oop потому что эти функции, кажется, ожидают только один список, в то время как на входе есть 2 отдельных стека (списки).
Может кто-нибудь помочь, Сара,