变化轨迹矩阵R中的非一致性数组

时间:2018-12-02 18:44:26

标签: arrays r for-loop matrix

我正在尝试在空白矩阵中创建更改轨迹代码,以分析4个矩阵之间的变化(使用分类栅格文件中的as.matrix进行转换):mat2010,mat2015,mat2017和mat2018。

我首先创建了一个空矩阵:

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

我认为这可能是因为所有矩阵的尺寸均为3454x5799,而mat2017则为3399x5710。但是,当我从参数中删除mat2017时,会出现相同的错误。有人可以帮我吗?

非常感谢您!

0 个答案:

没有答案