Version: 0.0.0.938
Title: Base functions for the DescToolsX ecosystem
License: GPL (≥ 2)
bedrock is the foundation layer of the DescToolsX ecosystem. It
provides low-level, generic utilities and basic routines — data
manipulation, inspection, vector operations, string handling, math and
combinatorics — that serve as building blocks for the higher-level
statistical, graphics, and modelling packages of the suite.
The package follows the DescToolsX design rules: a consistent lowerCamelCase API, generic functions with S3 methods, predictable argument names and ordering, and performance-critical routines implemented in Rcpp.
📖 Documentation: https://andrisignorell.github.io/bedrock/
remotes::install_github("AndriSignorell/bedrock")Appending, recoding, renaming, sorting, and reshaping of vectors, factors, matrices, and data frames.
appendX(),appendRowNames(),appendEnum()recodeX(),revCode(),combLevels(),dummy()sortX(),revX(),renameX(),setNamesX()splitX(),splitAt(),toLong()/toWide()recycle(),columnWrap(),compareDataFrames()toBaseR(),stringsAsFactors()- Type coercion shortcuts:
num(),int(),chr(),nchr(),bin()
Predicates and checks for data quality and structure.
isNumeric(),isDichotomous(),isLowCardinality(),isWholeLike(),isZero(),isNA()allDuplicated(),allIdentical(),completeColumns(),countCompCases(),flags()- Between operators:
%[]%,%()%,%[)%,%(]% isFilePath(),isURL(),isEuclid()
coalesceX(),closest(),locf()naIf(),naReplace(),nz()trim(),winsorize(),setLength()moveAvg(),midx(),vRot(),vShift(),pairApply()
mGsub(),mReplace()strSplitToCol(),strSplitToDummy()charToAscii()/asciiToChar(),asCDateFmt()
roundTo(),linScale(),logit(),precision()rankX(),percentRank(),nUnique()dotProd(),crossProd(),crossProdN()unirootAll(),untable()
primes(),isPrime(),factorize(),divisors()gcd()/lcm(),fibonacci(),digitSum(),isOdd()- Base conversions:
numericConversions combN(),combSet(),combPairs(),permn()sampleX(),randGroupSplit(),unwhich()
collapseTable(),multMerge(),printCharMatrix()
label()— get or set variable labelssetAttr(),removeAttr(),keepAttr()openDataObject(),dataDescription()— Excel data with codes and labels
buildPath(),splitPath()findDownload(),readDownload(),peekFile()fileExistURL(),pdfManual()parseSASDatalines()— parse SAS DATALINES blocks into a data.frame
callIf(),mergeArgs(),extractArgs(),getDotsArg(),quot()resolveFormula(),resolveGroups(),resolveContingency()funArgs(),funCalls(),funList(),funKeywords()rdTitle(),rdLabels(),strX()
Teaching and example datasets: Cards, Pizza, Roulette, Tarot,
plus courseData() for loading course material.
- Consistent — lowerCamelCase API and uniform argument conventions across the whole DescToolsX suite
- Fast — performance-critical routines implemented in Rcpp
- Generic — S3 generics with methods for vectors, factors, matrices, tables, and data frames
- Robust — validated inputs, informative errors, extensive testthat coverage
library(bedrock)
# range operators
x <- 1:10
x %[]% c(3, 6)
# first non-missing value
coalesceX(c(NA, NA, 5, 3))
# round to arbitrary multiples
roundTo(c(1.23, 4.56), 0.25)
# all 2-element subsets
combSet(letters[1:4], 2)
# parse a SAS data step
sas <- "
data mydata;
input name $ age score;
datalines;
Alice 30 95.5
Bob 25 88.0
;
"
parseSASDatalines(sas)GPL (≥ 2)