[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