我想用 mgcv 在r中打包以运行模型
mgcv
df <- as.data.frame(spdf) mod <- gam(y ~ s(geoid, bs = 'mrf', xt = list(nb = nb), k = 20) + s(month, bs = 'cc', k = 12), data = df, method = 'REML', family = Gamma(link = log))
其中spdf是一个空间多边形数据帧。
我在理解如何创建 nb 对象自数据 df 有重复项 geoid 值(每个月一个)和运行时
nb
df
geoid
nb <- poly2nb(spdf, row.names = spdf@data@geoid)
我得到错误
Error in poly2nb(spdf, row.names = spdf@data@geoid): non-unique row.names given
谢谢
neighborhood对象不需要像数据那样多的行,只需要像数据那样多的行。 geoid S.
如果你要用 大地水准面 从数据中,您将希望首先将对象子集包含不重复的 大地水准面 价值观。使用典型的子集设置方法( [ ) duplicated() 上 @data 元素 SpatialPolygonsDataFrame 应该给你一套独特的 大地水准面 从中构建邻里对象。
大地水准面
[
duplicated()
@data
SpatialPolygonsDataFrame