getting data associated with coordinates in a spatial data frame
Michael, that's half of the problem solved (whew!!). Now how do I change the data at that location? This is not an intuitive way to manipulate data. -----Original Message----- From: R. Michael Weylandt [mailto:michael.weylandt at gmail.com] Sent: Thursday, October 13, 2011 11:35 AM To: Bailey, Daniel Cc: Sarah Goslee; r-help at r-project.org Subject: Re: [R] getting data associated with coordinates in a spatial data frame Ah yes, my eternal nemesis the S4 class... You were basically there with e[e$coordinates==(0,17),] but for some access stuff that comes from the SpatialDataPointsFrame class. You'll probably want to do this in two steps: coords = coordinates(e) ## Use the access function coordinates to get a 2xn matrix of coordinates x and y; ## you could also do this with coords = e at coords as Weidong noted but it's discouraged e[coords[,"x"] == my.x & coords[,"y"] == my.y, "leachate"] I can't test it on your data, but I think this will do it. data(meuse.grid) coordinates(meuse.grid) <- ~x+y M = meuse.grid coords = coordinates(M) M[(coords[,"x"] == 179220) & (coords[,"y"] == 329620), "soil"] Hope this helps, Michael
On Thu, Oct 13, 2011 at 2:18 PM, Bailey, Daniel <bailed at spu.edu> wrote:
Michael, Thank you for the tips. The suggestion didn't work though. Here is the output of str(e): Formal class 'SpatialPointsDataFrame' [package "sp"] with 5 slots ?..@ data ? ? ? :'data.frame': 168 obs. of ?2 variables: ?.. ..$ catchcandata: num [1:168] 47.2 50.4 53.7 58 69.8 ... ?.. ..$ section ? ? : Factor w/ 1 level "16 Sept F9": 1 NA NA NA NA NA NA NA NA NA ... ?..@ coords.nrs : int [1:2] 1 2 ?..@ coords ? ? : num [1:168, 1:2] 0 0 0 0 0 ... ?.. ..- attr(*, "dimnames")=List of 2 ?.. .. ..$ : NULL ?.. .. ..$ : chr [1:2] "x" "y" ?..@ bbox ? ? ? : num [1:2, 1:2] 0 0 48.8 17.1 ?.. ..- attr(*, "dimnames")=List of 2 ?.. .. ..$ : chr [1:2] "x" "y" ?.. .. ..$ : chr [1:2] "min" "max" ?..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots ?.. .. ..@ projargs: chr NA -----Original Message----- From: R. Michael Weylandt [mailto:michael.weylandt at gmail.com] Sent: Thursday, October 13, 2011 11:13 AM To: Bailey, Daniel Cc: Sarah Goslee; r-help at r-project.org Subject: Re: [R] getting data associated with coordinates in a spatial data frame It's going to depend how the coordinates are stored within the data frame. Do you perhaps know if they are factors or character strings? (I'm not familiar with the package). If you don't know, type str(NAMEOFYOUROBJECT) and we can help interpret the output. Untested, I think this would actually work for both though: e[as.character(e$coordinates)=="(0,17)",] Michael On Thu, Oct 13, 2011 at 2:05 PM, Bailey, Daniel <bailed at spu.edu> wrote:
Thank you Sarah. I tried your suggestion, and if I coerce it into a normal data.frame, that method works. But if you've already made the data into a SpatialPixelsDataFrame and run coordinates (both from the package "sp") so that the columns "x" and "y" become a single column "coordinates" with the format (0, 17) for x and y, how do you then call or manipulate data at a specific location? The following: e[e$coordinates==(0,17),] Doesn't work. -----Original Message----- From: Sarah Goslee [mailto:sarah.goslee at gmail.com] Sent: Wednesday, October 12, 2011 5:34 PM To: Bailey, Daniel Cc: r-help at r-project.org Subject: Re: [R] getting data associated with coordinates in a spatial data frame Hi, On Wed, Oct 12, 2011 at 3:37 PM, Bailey, Daniel <bailed at spu.edu> wrote:
If I know the specific coordinate in a spatial data frame, how can I access the data at that coordinate? My coordinates are labeled "x" and "y" in a data.frame "e". The data is in column "leachate". I want to say, basically: e$leachate at coordinates(2,3<mailto:e$leachate at coordinates(2,3>).
That's kind of mangled, but what about: e[e$x == my.x & e$y == my.y, "leachate"] (Depending on the form of your coordinates, you may also have to invoke FAQ 7.31.) Sarah
Thanks, Daniel
-- Sarah Goslee http://www.functionaldiversity.org
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.