请教各位老师同学:
用距离衰减函数生成权重,但权重用在splm命令中时报错,显示权重不是矩阵。我尝试将权重变成矩阵形式,仍然不行。命令如下:
> nb<-dnearneigh(xy,0,6371)
> nbd<-nbdists(nb,xy)
> gl<-lapply(nbd,function(x)1/x)
> lw<-nb2listw(nb,glist=gl)
#生成lw部分的命令均正常#
> splm.results<-spml(fm,data=mydata,index=c("id","year"),listw=mat2listw(lw),model="random",effect="individual",lag=T,spatial.error="b")
错误于mat2listw(lw) : x is not a matrix
> lw2<-matrix(lw,nrow=30,ncol=30,byrow=T)
> splm.results<-spml(fm,data=mydata,index=c("id","year"),listw=mat2listw(lw2),model="random",effect="individual",lag=T,spatial.error="b")
错误于mat2listw(lw2) : (串列)对象不能强制改变double'种类
> lw3<-as.matrix(lw)
> splm.results<-spml(fm,data=mydata,index=c("id","year"),listw=mat2listw(lw3),model="random",effect="individual",lag=T,spatial.error="b")
错误于mat2listw(lw3) : x must be a square matrix
不知哪里出现问题,还请各位老师同学多多指点!



雷达卡



京公网安备 11010802022788号







