[R] Selecting contiguous, irregularly-shaped sets of values from arrays
Bryan McCloskey
bmccloskey at usgs.gov
Tue Jan 31 20:58:18 CET 2012
All,
I am attempting to select all of the contiguous elements of a matrix that meet some criterion. I.e., values that would be contained within an irregular area defined by a "contour" applied around point of interest. So, if I have a matrix x as follows:
> x <- matrix(rnorm(25), nrow=5, ncol=5,
dimnames=list(c("A","B","C","D","E"), c("v","w","x","y","z"))
> x
v w x y z
A 0.5184795 1.9641285 0.8632044 1.5010397 0.8468490
B -1.2402866 0.5211307 -0.1474351 1.3264893 0.1087390
C 0.5910275 -1.1708906 0.9440755 1.0970971 -0.2784806
D 0.6377495 1.1594035 -0.4217621 1.4021680 -0.6487677
E -1.4590833 0.2065765 0.1623669 1.3598283 0.3742821
>
how can I select all values in the "pond" of contiguous matrix entries that have values, say <0.6, if my entry of interest is x["A","v"]. In that case, I would like to select the following starred entries:
v w x y z
A 0.5184795* 1.9641285 0.8632044 1.5010397 0.8468490
B -1.2402866* 0.5211307* -0.1474351* 1.3264893 0.1087390
C 0.5910275* -1.1708906* 0.9440755 1.0970971 -0.2784806
D 0.6377495 1.1594035 -0.4217621* 1.4021680 -0.6487677
E -1.4590833 0.2065765* 0.1623669* 1.3598283 0.3742821
But I would _not_ like to select any of the values in x[,"z"], because, even though they may be <0.6, they are not contiguous with the pond that x["A","v"] is in.
Is there an easy way to do this for many points of interest in a large matrix?
Thanks,
-bryan
------
Bryan McCloskey, Ph.D.
U.S. Geological Survey
St. Petersburg Coastal & Marine Science Center
St. Petersburg
------
More information about the R-help
mailing list