Peter H Singleton
2007-Oct-02 18:58 UTC
[R] Adehabitat package question - trying to generate animal home ranges
Hello, I'm new to R and am trying to use the adehabitat package for home range and habitat selection analysis for some animal radiotelemetry data sets I have, but I can't get the home range functions (mcp & kernelUD) to work with my data. I think that my problem is that I don't properly understand how the package uses data frames and factors, and I may not be defining the id factor correctly. I've started out by trying to imitate the code in the homerange.r demo that comes with the ade package. The code I'm trying to repeat with my data is: ############################################### ############################################### ### ### loads the data library(adehabitat) data(puechabon) xy<-puechabon$locs[,c("X","Y")] id<-puechabon$locs$Name ## The data are: xy[1:4,] ## relocations coordinates id[1:4] ## ID ############################################### ############################################### ### ### Home ranges ## MCP hr<-mcp(xy, id) ## home range estimation plot(hr) ## displays the MCP (jj<-mcp.area(xy, id)) ## home range size plot(jj) ## plots home-range size ## Kernel home range (hr<-kernelUD(xy, id, h="LSCV", grid=100)) ## UD estimation plotLSCV(hr) ## LSCV criterion image(hr) ## displays the UD (jj<-kernel.area(xy, id)) ## home range size plot(jj) ## Plots home range size ver <- getverticeshr(hr) ## home-range contours plot(ver) ## Plots contours =====================================================================================================================================The following is as far as I have gotten with my attempt to repeat the above:> require(adehabitat)... ## I can get my data into the data frame object test> test = read.csv("c:/rjunk/testdata.csv", header=T) > testBIRD_LOC BIRD SEX DATE TIME DATEVALUE SEASON X Y 1 CBF1001 CBF F 5/18/2004 1756 38125 04BR 675022 5302087 2 CBF1002 CBF F 5/19/2004 1817 38126 04BR 674988 5302111 ... 90 CBM1043 CBM M 9/28/2004 739 38258 04BR 675305 5302229 91 CBM1044 CBM M 10/1/2004 738 38261 04BR 675005 5302109 ## What does the $locs do? Am I correct that this is referring to something that I don't have defined in my data frame?> xy<-test$locs[,c("X","Y")] > id<-test$locs$bird > xyNULL> idNULL ## I figured out how to subset the data into my XY coordinates and the BIRD id lables, but the mcp and kernelUD functions don't work with these subsets. Do I need to do something else to identify BIRD as a factor? Is there a data prep step that I'm missing?> xy <- subset(test, select = c(X, Y)) > xyX Y 1 675022 5302087 2 674988 5302111 ... 90 675305 5302229 91 675005 5302109> id <- subset(test, select = c(BIRD)) > idBIRD 1 CBF 2 CBF ... 90 CBM 91 CBM> hr <- mcp(xy, id)Error in mcp(xy, id) : xy and id should be of the same length> hr <- kernelUD(xy, id, h="LSCV", grid=100)Error in kernelUD(xy, id, h = "LSCV", grid = 100) : id should have the same length as xy <<->><<->><<->><<->><<->><<->><<->> Peter Singleton Wildlife Ecologist USFS Pacific Northwest Research Station 1133 N. Western Ave. Wenatchee WA 98801 Phone: (509)664-1732 Fax: (509)665-8362 E-mail: psingleton at fs.fed.us