R: Generate histogram from counts of data
r
Solution
`?rep`
> rep(a, b)
[1] 1.0 1.0 6.0 6.0 6.0 2.0 2.0 4.1 1.0
>
Edit since I was curious!
a <- sample(1:10, 1e6, replace=TRUE)
b <- sample(1:10, 1e6, replace=TRUE)
> system.time(rep(a, b))
user system elapsed
0.140 0.016 0.156
> system.time(inverse.rle(list(lengths=b, values=a)))
user system elapsed
0.024 0.004 0.028
Problem
Suppose I have vector `a`: ``` c(1, 6, 2, 4.1, 1, 2) ``` And a count vector `b`: ``` c(2,3,2,1,1,0) ``` I'd like to generate vector `c`: ``` c(1, 1, 6, 6, 6, 2, 2, 4.1, 1) ``` To call: ``` hist(c) ``` How can I build `c`, or is there a way to generate the histogram directly from `a` and `b`? Note the duplicates in `a`, as well as unequal spacing. Require a vectorized solution. `a` and `b` are too large for lapply and friends.