我在 spdep()
方面遇到问题。从函数生成的非缺失距离矩阵开始
dist_m <- geoDistMatrix(data1, group = 'fips_dist')
dist_m[upper.tri(dist_m)] <- t(dist_m)[upper.tri(dist_m)]
然后我们将权重转化为线性逆
max_dist <- max(dist_m)
w1 <- (max_dist + 1 - dist_m)/(max_dist + 1)
现在
lw <- mat2listw(w1, row.names = rownames(w1), style = 'M')
我检查以确保没有丢失权重:
any(is.na(lw$weights))
既然没有,请继续:
errorsarlm(cvote ~ inc, data = data1, lw, method = 'eigen', quiet = F, zero.policy = TRUE)
导致以下错误:
Error in subset.listw(listw, subset, zero.policy = zero.policy) :
Not yet able to subset general weights lists
最佳答案
这是因为 data1
中至少有一个观察结果不完整,即缺少值。因此,errorsarlm 想要对数据进行子集化,即限制为完整的案例。但现在不能这样做 - 这就是错误消息所说的。
最好的办法是手动对数据进行子集化或纠正不完整的情况。
关于r - spdep "Not yet able to subset general weights lists"列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27096990/