Plotting counts vs. intervals for a shingle
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