[R] Plotting counts vs. intervals for a shingle

David Winsemius dwinsemius at comcast.net
Fri May 8 22:30:35 CEST 2009


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?)

-- 
David


On May 7, 2009, at 9:55 AM, Walcerz, Douglas (APG) wrote:

> Hello!
>
> Suppose I have a set of values:
>
> a <- c(1:10, 5:10)
>
> Suppose I also have a set of intervals:
>
> b <- cbind(c(0,2.5,4.5,6.5), c(5.5,7.5,9.5,11))
>
> I can create a shingle that counts how many values are in each  
> interval:
>
> c <- shingle(a, b)
>
> I can display the shingle to see the counts:
>
> summary(c, showValues=FALSE)
>
> The display looks like this:
>
> Intervals:
>  min  max count
> 1 0.0  5.5     6
> 2 2.5  7.5     8
> 3 4.5  9.5    10
> 4 6.5 11.0     8
>
> Overlap between adjacent intervals:
> [1] 4 6 6
>
> I would like to plot the "count" vs. the "Intervals"
>
> I can create a vector representing the intervals:
>
> labels <- as.character(levels(c))
>
> But I can't seem to create a vector of counts, which would permit me  
> to plot counts vs. intervals.
>
> Thanks for any insights you can provide.
>
> p.s.  My real data contains 25,094 values and 5,809 intervals.  Many  
> of the intervals will not contain any of the values.
>
> -Douglas

David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list