Re: [R] Sorting values within a raster

From: Sara Maxwell <smaxwell_at_ucsc.edu>
Date: Thu, 21 Apr 2011 18:33:22 -0700

Hi David et al,
Thanks for your help. I spent the afternoon and thought that would work but then I realized it was giving a different answer.

I have counts ('hits') in each grid cell, and have then calculated the proportion of the total hits represented in each cell (such that the sum of all cells = 1). I want to take the cell with largest proportion, add the next largest proportion to it, etc until I reach 10% of the TOTAL number of 'hits'. Quantiles unfortunately are created using the total number of CELLS and not the total number of HITS, if that makes sense.

Any thoughts??

Many many thanks,
Sara


Sara M. Maxwell, Ph.D.

On Apr 21, 2011, at 1:26 PM, David Winsemius wrote:

>
> On Apr 21, 2011, at 3:23 PM, Sara Maxwell wrote:
>
>> I am working with a raster and want to take values assigned to each
>> cell and sort them from largest to smallest, then cummulatively sum
>> them together (in order from largest to smallest). I'll then be
>> coding the individual cells such that the top 10% of the largest
>> cell values can be visualize with one color, the next 10% with
>> another and so on.
>>
>> I have tried a number of schemes but am having trouble figuring out
>> how to chose the maximum value, code it and re-search the raster
>> for the next highest value without replacement. I am assuming this
>> requires a loop, unless there is a function that will do this
>> automatically.
>
> ?quantile
>
>>
>> Here is a sample dataset:
>>
>> library(raster)
>> r <- raster(ncol=10, nrow=10)
>> values(r) <- runif(ncell(r))
>
>
> > quantile(values(r), prob=seq(0,1,by=0.1))
> 0% 10% 20% 30% 40%
> 0.004888148 0.106378528 0.217009097 0.307201289 0.364990984
> 50% 60% 70% 80% 90%
> 0.512523817 0.593382875 0.667916094 0.722919876 0.835839832
> 100%
> 0.996683575
>
> You will also need findInterval()
>
> If you want to create a factor that will assign your colors. perhaps
> this could be used to index a suitable color vector:
>
> fac <- findInterval(values(r), quantile(values(r),
> prob=seq(0,1,by=0.1)) )
> > fac
> [1] 6 10 1 10 7 7 8 10 2 9 9 1 6 2 9 1 9 4 2 2
> [21] 3 4 8 9 7 1 9 2 10 5 4 9 8 1 8 10 1 11 3 5
> [41] 5 6 6 5 6 7 4 7 5 3 8 6 3 4 10 4 7 7 8 9
> [61] 10 4 1 8 8 8 3 7 5 1 9 5 2 7 2 10 3 8 4 9
> [81] 6 6 2 6 10 5 5 4 3 6 2 2 1 3 3 3 4 7 1 5
>
> David Winsemius, MD
> West Hartford, CT
>



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. Received on Fri 22 Apr 2011 - 02:33:05 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 22 Apr 2011 - 03:00:31 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive