0

我想使用mgcvR 中的包来运行模型

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 是 SpatialPolygonDataFrame。

我在理解如何创建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

谢谢

4

1 回答 1

1

邻域对象的行数不需要与数据一样多,只需与geoids 一样多。

如果您geoid要从数据中使用,您需要首先对对象进行子集化以包含非重复geoid值。使用典型的[子集方法(duplicated()@dataSpatialPolygonsDataFramegeoid

于 2018-12-09T17:02:32.243 回答