Я пытаюсь создать коды изменений траектории в пустой матрице для анализа изменений между 4 матрицами (преобразованными с использованием as.matrix из классифицированных растровых файлов): mat2010, mat2015, mat2017 и mat2018.
I сначаласоздал пустую матрицу:
rows <- nrow(mat2010)
cols <- ncol(mat2010)
Traj <- matrix(0, rows, cols)
Затем я написал цикл for, чтобы заполнить пустую матрицу (Traj) четырьмя цифровыми кодами на основе значений в определенных местах в исходных матрицах.Поскольку последние содержат много значений NA, я добавил аргумент для присваивания NA пустой матрице:
for (i in 1:(nrow(mat2010))) {
for (j in 1:(ncol(mat2010))) {
if(is.na(mat2010) | is.na(mat2015) |is.na(mat2017) | is.na(mat2018)) {
Traj[i,j] <- NA
} else {
Traj[i,j] <- as.numeric(c(as.character(mat2010[i,j]), as.character(mat2015[i,j]), as.character(mat2017[i,j]), as.character(mat2018[i,j])))
}}}
Однако, это дает ошибку:
Error in is.na(mat2010) | is.na(mat2015) | is.na(mat2017) :
non-conformable arrays
Iдумал, что это может быть потому, что размеры всех матриц 3454x5799, за исключением mat2017, который составляет 3399x5710.Однако, когда я удаляю mat2017 из аргумента, он выдает ту же ошибку.Может ли кто-нибудь помочь мне с этим?
Большое спасибо заранее!