[R-sig-Geo] gam problem

Robert J. Hijmans r.hijmans at gmail.com
Thu May 12 19:29:56 CEST 2011


Thanks Tim,
This happened when using gam & writing to file & na.rm = FALSE (which
in the case of GAM is the same as na.rm=TRUE). The problem was that
gam.predict returns an array where raster::predict expected a matrix
or a vector. This is now fixed (version 1.8-22).
Robert

On Thu, May 12, 2011 at 6:02 AM,  <Tim.Haering at lwf.bayern.de> wrote:
>> Tim,
>>
>> That is a tough one. Can you send me the result of
>>
>> traceback()
>
> Here is the result:
>> mod.gam <- gam(y ~ Slope + Boen_By50m + Hoehe_abs, data=train, family=binomial())
>> p <- predict(object = r, model = mod.gam, filename='gebiet_1/sturmwurf.img',
>  progress='text', na.rm = FALSE, overwrite = TRUE, format = 'HFA', type='response')
>  |                                                                      |
>  0%Error in object[-omit, , drop = FALSE] : incorrect number of dimensions
>> traceback()
> 7: na.omit.default(v)
> 6: na.omit(v)
> 5: writeValues(predrast, predv, tr$row[i])
> 4: writeValues(predrast, predv, tr$row[i])
> 3: .local(object, ...)
> 2: predict(object = r, model = mod.gam, filename = "gebiet_1/sturmwurf.img",
>       progress = "text", na.rm = FALSE, overwrite = TRUE, format = "HFA",
>       type = "response")
> 1: predict(object = r, model = mod.gam, filename = "gebiet_1/sturmwurf.img",
>       progress = "text", na.rm = FALSE, overwrite = TRUE, format = "HFA",
>       type = "response")
>
>
>
> I think I found the error. In my rasterStack NA were present. And since the "na.rm" argument is set to FALSE, predict() fails.
> Attached you find data. Hopefully they can help you to clarify, because though it is working now by setting na.rm=TRUE, it is still curious why predict() is working with lm() or glm() models but not with gam().
>
(...)
>
> Thank you.
>
> All the best,
> TIM
>



More information about the R-sig-Geo mailing list