s = c(1,3,2,2,2,0,0,4,4,1,1,1,1,1,3,3)
soundgen:::clumper(s, 2)
soundgen:::clumper(s, 3)
soundgen:::clumper(1:5, 10)
soundgen:::clumper(c('a','a','a','b','b','c','c','c','a','c'), 3)
soundgen:::clumper(x = c(1,2,1,2,1,1,1,1,3,1), minLength = c(1, 1, 1, 3))
soundgen:::clumper(as.factor(c('A','B','B','C')), 2)
## clumper vs clumper2
# clumper2 is faster for wiggly inputs
s = rpois(1000, 2)
plot(s, type = 'l')
plot(soundgen:::clumper(s, minLength = c(2, 3, 10)), type = 'l')
plot(soundgen:::clumper2(s, minLength = c(2, 3, 10)), type = 'l')
system.time(for (i in 1:10) soundgen:::clumper(s, minLength = c(2, 3, 10)))
system.time(for (i in 1:10) soundgen:::clumper2(s, minLength = c(2, 3, 10)))
# clumper1 is faster for step-like inputs
s2 = approx(c(2,4,3,2,0), n = 1001, method = 'constant')$y[1:1000]
plot(s2, type = 'l')
plot(soundgen:::clumper(s2, minLength = c(2, 3, 10)), type = 'l')
plot(soundgen:::clumper2(s2, minLength = c(2, 3, 10)), type = 'l')
system.time(for (i in 1:10) soundgen:::clumper(s2, minLength = c(2, 3, 10)))
system.time(for (i in 1:10) soundgen:::clumper2(s2, minLength = c(2, 3, 10)))
Run the code above in your browser using DataLab