Message-ID: <eb555e660905081355h28d83379vd0b766211c1b07f4@mail.gmail.com>
Date: 2009-05-08T20:55:52Z
From: Deepayan Sarkar
Subject: Plotting counts vs. intervals for a shingle
In-Reply-To: <91D0656B-72D8-4F61-8D3D-468309B1F4A5@comcast.net>
On Fri, May 8, 2009 at 1:30 PM, David Winsemius <dwinsemius at comcast.net> wrote:
>
> Took a bit of inspecting, looking at hidden functions, but this seems to do
> it:
>
> library(lattice)
> ?a <- c(1:10, 5:10)
> ?b <- cbind(c(0,2.5,4.5,6.5), c(5.5,7.5,9.5,11))
> ?c <- shingle(a, b)
> ?summary(c, showValues=FALSE)
>
> apply(as.matrix(levels(c)), 1, function(x) length(c[ c>= x[[1]][1] & c <=
> x[[1]][2] ]) )
>
> #[1] ?6 ?8 10 ?8
>
> "apply" passes a list to the function which requires the "[[" operation
> before the index. Since you did not create an example that represents the
> exceptions, i did not test for any such conditions. (Why do people not
> construct proper examples?)
Noting that
> str(levels(c))
List of 4
$ : num [1:2] 0 5.5
$ : num [1:2] 2.5 7.5
$ : num [1:2] 4.5 9.5
$ : num [1:2] 6.5 11
- attr(*, "class")= chr "shingleLevel"
I would suggest the slightly simpler
> sapply(levels(c), function(x) sum(x[1] <= c & c <= x[2]))
[1] 6 8 10 8
-Deepayan