clumper: Clump a sequence into large segments

View source: R/math.R

clumperR Documentation

Clump a sequence into large segments

Description

Internal soundgen function.

Usage

clumper(x, minLength, n = length(x))

Arguments

x

a vector: anything that can be converted into an integer to call diff(): factors, integers, characters, booleans

minLength

the minimum length of a segment (interger or vector)

Details

clumper makes sure each homogeneous segment in a sequence is at least minLength long. Called by getIntegerRandomWalk(), getVocalFry(), naiveBayes(), etc. Algorithm: find the epochs shorter than minLength, merge max 1/4 of them with the largest neighbor, and repeat recursively until all epochs are at least minLength long. minLength can be a vector, in which case it is assumed to change over time.

Value

Returns the original sequence x transformed to homogeneous segments of required length, with the original class (e.g. character or factor).

Examples

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)

tatters/soundgen documentation built on Aug. 22, 2023, 4:24 p.m.