Fast data manipulation functions implemented in C for large datasets. Provides vectorized alternatives to base R functions with significant performance improvements.
# From CRAN
install.packages("kit")
# Development version
install.packages("kit", repos = "https://fastverse.r-universe.dev")Vector-valued functions operating in parallel over vectors or data frames:
psum,pprod,pmean: Parallel sum, product, and mean (similar topmin/pmax)pall,pany: Parallel all/any operationspcount,pcountNA: Count occurrences of values or NAspfirst,plast: First/last non-missing values
x <- c(1, 3, NA, 5)
y <- c(2, NA, 4, 1)
psum(x, y, na.rm = TRUE) # [1] 3 3 4 6
pmean(x, y, na.rm = TRUE) # [1] 1.5 3.0 4.0 3.0Fast vectorized conditional logic:
iif: Fast replacement forifelse()with attribute preservationnif: Nested if-else (SQL CASE WHEN equivalent)vswitch,nswitch: Vectorized switch statements
iif(x > 2, x, x - 1) # Preserves attributes unlike base::ifelse
nif(x == 1, "one", x == 2, "two", default = "other")psort: Parallel sort for character vectorstopn: Efficient partial sort (top N values) without full sorting
topn(x, n = 6L, decreasing = TRUE) # Much faster than order()[1:6]charToFact: Fast character-to-factor conversionsetlevels: Change factor levels by reference
funique,fduplicated: Fast unique/duplicated operationsuniqLen: Fast equivalent tolength(unique(x))count,countNA,countOccur: Count element occurrences
funique(iris$Species) # Faster than base::unique
uniqLen(iris$Species) # Faster than length(unique())fpos: Find matrix/vector positions within larger structuresshareData,getData,clearData: Share data between R sessions
Full documentation available at: https://fastverse.github.io/kit/
GPL-3