我正在尝试在空白矩阵中创建更改轨迹代码,以分析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时,会出现相同的错误。有人可以帮我吗?
非常感谢您!