Milagros Antun
2015-Jun-16 14:04 UTC
[R] Error working dsm: Error in fix.by(by.x, x) : 'by' must specify a uniquely valid column
Hello, I`m trying to use dsm package, *(library(Distance); library(dsm)*) , following Miller`s Appendix ( http://onlinelibrary.wiley.com/store/10.1111/2041-210X.12105/asset/supinfo/mee312105-sup-0001-AppendixS1.pdf?v=1&s=ced953b57365e5eb5753f0ad76dcc02c26918736 ). I work with three dataframes, whose str are: *1) segdata:* data.frame': 193 obs. of 17 variables: $ Sample.Lab : int 1 2 3 4 5 6 7 8 9 10 ... $ Transect.Label: Factor w/ 56 levels "1","100","101",..: 36 36 36 36 36 20 56 52 52 52 ... $ Effort : int 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 ... $ x : num 4443636 4437817 4442085 4440564 4439117 ... $ y : num 5267395 5271579 5268309 5269266 5270337 ... $ ID_ESTRATO : int 3 2 3 2 2 2 2 2 4 2 ... $ NDVI2010 : num 1813 1816 1804 1807 1816 ... $ NDVI2011 : num 2007 1943 1935 1894 1893 ... $ NDVI2012 : num 1705 1736 1686 1691 1729 ... $ NDVI2013 : num 2206 2305 2145 2211 2279 ... $ PROM_NDVI : num 2218 2313 2148 2206 2275 ... $ DIST_PUEST : num 959 455 2652 3194 1394 ... $ DIST_CUADR : num 1482.1 137.5 549.9 62.9 514.8 ... $ DIST_MOLIN : num 794 5022 2519 4156 5715 ... $ X_4326 : num -63.7 -63.8 -63.7 -63.7 -63.7 ... $ Y_4326 : num -42.7 -42.7 -42.7 -42.7 -42.7 ... $ O.KM2_2015 : num 64.1 34.6 43.4 44.4 46.6 ... *2) obsdata:* 'data.frame': 399 obs. of 6 variables: $ Especie. : Factor w/ 1 level "Oveja": 1 1 1 1 1 1 1 1 1 1 ... $ size : int 3 1 5 18 6 2 6 3 5 2 ... $ distance : int 210 178 65 210 250 37 72 350 380 320 ... $ object : int 1 2 5 7 8 13 14 20 30 31 ... $ Sample.Label: int 26 26 30 30 30 29 28 27 31 31 ... $ Effort : num 1.8 1.8 1.8 1.8 1.8 1.8 1.8 1.8 1.8 1.8 ... *3)disdata* 'data.frame': 399 obs. of 7 variables: $ x : num 4418278 4418667 4421229 4421308 4421308 ... $ y : num 5299140 5298846 5295963 5295805 5295805 ... $ Especie.: Factor w/ 1 level "Oveja": 1 1 1 1 1 1 1 1 1 1 ... $ size : int 3 1 5 18 6 2 6 3 5 2 ... $ distance: int 210 178 65 210 250 37 72 350 380 320 ... $ object : int 1 2 5 7 8 13 14 20 30 31 ... $ Effort : num 1.8 1.8 1.8 1.8 1.8 1.8 1.8 1.8 1.8 1.8 ... *First, I **fitted a detection function with the **script: * *hr.model <-ds(distdata,truncation="10%",transect ="line",dht.groupFALSE,key ="hr", convert.units = 1,adjustment =NULL) * *And then, I tried to fit a **very simple model, with the script:* *mod1<-dsm(count ~ s(x,y, k=6), ddf.obj=hr.model, segdata, obsdata, engine = "gam",convert.units = 1, family = quasipoisson(link = "log"),group FALSE,gamma = 1.4,control = list(keepData = TRUE),availability 1,segment.area = NULL, weights = NULL)* *Here I made a mistake, because R show me an Error: * *Error in fix.by <http://fix.by/>(by.x, x) : 'by' must specify a uniquely valid column* *Does anybody can help me? Thanks in advance!* *Milagros* -- Lic. Ma. de los Milagros Ant?n Centro Nacional Patag?nico-CONICET Boulevard Brown 2915 9120 Puerto Madryn Argentina Tel. +54 (0) 280 4883184 Interno 1345 Fax +54 (0) 280 4883543 [[alternative HTML version deleted]]