[R] getting data associated with coordinates in a spatial data frame
R. Michael Weylandt
michael.weylandt at gmail.com
Thu Oct 13 20:34:47 CEST 2011
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.
>>
>
>
More information about the R-help
mailing list