Несоответствующие массивы в матрице изменения траектории R - PullRequest
0 голосов
/ 02 декабря 2018

Я пытаюсь создать коды изменений траектории в пустой матрице для анализа изменений между 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 из аргумента, он выдает ту же ошибку.Может ли кто-нибудь помочь мне с этим?

Большое спасибо заранее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...