On Apr 21, 2011, at 9:33 PM, Sara Maxwell wrote:
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.
So sort, then cumsum and finally do findInterval. An example would
"focus the mind".
--
David.
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@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.
David Winsemius, MD
West Hartford, CT
______________________________________________
R-help@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.