On Sun, 17 Sep 2006 15:12:30 -0500,
"Sebastian P. Luque" <[EMAIL PROTECTED]> wrote:

[...]

> I thought about some very contrived ways to accomplish this, involving
> 'which' and 'diff', but I sense a function might already be available to
> do this efficiently.

I think I found a better combination of those two functions than I what I
was initially playing with:


R> lenh <- hist(iris$Sepal.Length, br=seq(4, 8, 0.05))
R> ok <- which(lenh$counts > 0)
R> lenh$counts[ok] <- lenh$counts[ok] / diff(c(0, ok))
R> lenh$counts
 [1] 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.0000 1.5000 0.0000 0.5000
[11] 0.0000 2.0000 0.0000 1.0000 0.0000 2.5000 0.0000 3.0000 0.0000 5.0000
[21] 0.0000 4.5000 0.0000 2.0000 0.0000 0.5000 0.0000 3.0000 0.0000 3.5000
[31] 0.0000 3.0000 0.0000 4.0000 0.0000 3.5000 0.0000 1.5000 0.0000 3.0000
[41] 0.0000 3.0000 0.0000 2.0000 0.0000 4.5000 0.0000 3.5000 0.0000 2.5000
[51] 0.0000 1.0000 0.0000 4.0000 0.0000 1.5000 0.0000 2.0000 0.0000 0.5000
[61] 0.0000 0.5000 0.0000 1.5000 0.0000 0.5000 0.0000 0.5000 0.0000 0.0000
[71] 0.0000 0.2500 0.0000 2.0000 0.0000 0.0000 0.0000 0.2500 0.0000 0.0000


It makes sense, although I'm a bit nervous about floating-point issues
that might make this fail in some cases.  Any suggestions/comments
welcome.


-- 
Seb

______________________________________________
R-help@stat.math.ethz.ch 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.

Reply via email to