Я пытаюсь запустить PCA для некоторых биоклиматических переменных в R, в частности, текущих и будущих проекций биоклиматических переменных из worldclim.org.
Проблема заключается в том, что prcomp может работать только с одним растровым стеком.Я хотел, чтобы prcomp работал над двумя растровыми стеками одновременно.Растровые стеки, которые имеют точно такой же набор переменных (имен и экстентов), но имеют разные значения ячеек.
У меня есть обходной метод для решения этой проблемы, который заключается в смещении экстента будущих растровых слоев иобъединить их с текущими в один обширный набор растровых слоев.Но это дает мне много проблем проекции с другими данными, которые я хотел бы использовать вместе с этим.
Я понимаю, что это не совсем понятно, но в основном: два растровых стека PCA с одинаковыми переменными, с одинаковыми координатами,без необходимости сдвигать экстент.
Спасибо!
Изменения: я не мог понять, как получить данные или создать пример данных, поэтому изначально не включал пример кода.Постараюсь быть более понятным здесь.
filesC # location of bioclimate files for current
[1] "bio01.asc" "bio02.asc" "bio03.asc" "bio04.asc" "bio05.asc"
filesF # location of bioclimate files for the future
[1] "bio01.asc" "bio02.asc" "bio03.asc" "bio04.asc" "bio05.asc"
# note they have the exact same variables.
rasC <- stack(filesC)
rasF <- stack(filesF)
rasC@extent
#class : Extent
#xmin : 116.95
#xmax : 126.6
#ymin : 4.65
#ymax : 21.11667
rasF@extent
#class : Extent
#xmin : 116.95
#xmax : 126.6
#ymin : 4.65
#ymax : 21.11667
# and exact same extent
Так что в настоящее время я делаю это.
pcaC <- prcomp(rasC, scale = T)
FutPCs <- predict(rasF, pcaC)
# creating PCs of rasF based on the pca from rasC
Однако я хотел бы применить PCA на оба растровых стека одновременно.Построение «формулы PCA» на основе переменных из текущих и будущих биоклиматических переменных.вот так ...
pca <- prcomp(rasC, rasF, scale = T)
CurPCs <- predict(rasC, pca)
FutPCs <- predict(rasF, pca)
Надеюсь, это понятнее!