【发布时间】:2019-01-04 05:19:32
【问题描述】:
我正在使用mgcv 包根据一些环境协变量对臭氧污染浓度进行建模。该模型采用以下形式:
model1 <- gam(O3 ~ s(X, Y, bs = "tp", k = 10) + wd + s(date, bs = "cc", k = 100) + district,
data = mydata, family = gaussian(link ="log"),
na.action = "na.omit", method = "REML")
这是协变量的结构:
> str(mydata)
'data.frame': 7100 obs. of 286 variables:
$ date : Date, format: "2016-01-01" "2016-01-01" "2016-01-01" ...
$ O3 : num 0.0141 0.0149 0.0102 0.0159 0.0186 ...
$ district : Factor w/ 10 levels "bc","bh","dl",..: 1 8 7 8 2 6 4 4 10 2 ...
$ wd : Factor w/ 16 levels "E","ENE","ESE",..: 13 13 13 13 13 2 9 9 11 13 ...
$ X : num 0.389 0.365 1 0.44 0.892 ...
$ Y : num 0.311 0.204 0.426 0.223 0.162 ...
我被困在一个
R 中的错误:“名称”属性 [1] 必须与向量 [0] 的长度相同。
我尝试通过从公式中删除s(date, bs = "cc", k = 100) 一词来找出问题所在,它可以正常工作。日期字段似乎有问题。
我不确定如何解决这个问题。任何建议都会非常有用 赞赏!
【问题讨论】:
-
看起来您需要将日期类转换为数字。 (ps;我经常看到循环样条与月/周等一起使用,而不是原始日期)
-
给出的答案已经足够了,但我要补充一点,当我使用一个我认为是一个因素但没有正式定义它的字符变量时,我遇到了同样的错误。改造后问题解决了“mutate(var1 = as.factor(var.1))”