Every operation R’s dplyr users expect — filter, cumsum, rank, lag, lead, sort, mean, median —
all backed by Kahan-compensated summation and deterministic BTreeMap ordering.
// Employee salary data let salaries = [95000.0, 87000.0, 72000.0, 68000.0, 105000.0, 78000.0]; // filter_mask: like dplyr::filter() let mask = [true,true,false,false,true,false]; let top = filter_mask(salaries, mask); print(top); // → [95000, 87000, 105000] // cumsum: running revenue totals let monthly = [1200.0, 1500.0, 1100.0, 1800.0, 1300.0, 1600.0]; print(cumsum(monthly)); // → [1200, 2700, 3800, 5600, 6900, 8500] // cumprod: compound growth rates let growth = [1.05, 1.03, 0.98, 1.07, 1.02]; print(cumprod(growth)); // → [1.05, 1.0815, 1.0599, ...]
// rank: ordinal salary ranking print(rank(salaries)); // → [5, 4, 2, 1, 6, 3] // lag / lead: window functions let vals = [10, 20, 30, 40, 50]; print(lag(vals, 1)); // → [NaN, 10, 20, 30, 40] print(lead(vals, 1)); // → [20, 30, 40, 50, NaN] // Statistical aggregates let data = [3.0,1.0,4.0,1.0,5.0,9.0,2.0,6.0]; print(sort(data)); // → [1, 1, 2, 3, 4, 5, 6, 9] print(median(data)); // → 3.5 print(mean(data)); // → 3.875 // Stringr: text processing print(str_replace("hello","lo","CJC")); // → helCJC
filter_mask: [95000, 87000, 105000] cumsum: [1200, 2700, 3800, 5600, 6900, 8500] cumprod: [1.05, 1.0815, 1.0599, 1.1341, 1.1567] rank: [5, 4, 2, 1, 6, 3]
lag(1): [NaN, 10, 20, 30, 40] lead(1): [20, 30, 40, 50, NaN] sort: [1, 1, 2, 3, 4, 5, 6, 9] median: 3.5 mean: 3.875