在R中使用mat2listw函数创建空间权重矩阵 [英] Using mat2listw function in R to create spatial weights matrix

查看:11
本文介绍了在R中使用mat2listw函数创建空间权重矩阵的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用mat2listw函数在R中创建一个Weights对象。我有一个非常大的空间权重矩阵(大约22,000 x 22,000) 它是在Excel中创建的,并读取到R中,现在我正在尝试实现:

library(spdep) 
SW=mat2listw(matrix) 

我收到以下错误:

Error in if (any(x<0)) stop ("values in x cannot be negative"): missing 
value where TRUE/FALSE needed. 

这里出了什么问题?我现在的矩阵都是0和1,没有 缺少值并且没有负元素。我错过了什么?

如果有任何建议,我将不胜感激。提前感谢您的帮助!

推荐答案

以下是对您之前的评论的简单测试:

library(spdep)
m1 <-matrix(rbinom(100, 1, 0.5), ncol =10, nrow = 10) #create a random 10 * 10 matrix
m2 <- m1 # create a duplicate of the first matrix
m2[5,4] <- NA # assign an NA value in the second matrix
SW <- mat2listw(m1) # create weight list matrix
SW2 <- mat2listw(m2) # create weight list matrix

第一个矩阵不会失败,但第二个矩阵会失败。现在真正的问题是,为什么要创建包含Nas的权重矩阵。你有没有考虑过在r中创建空间权重矩阵?使用dneneight或其他功能。

这篇关于在R中使用mat2listw函数创建空间权重矩阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆