The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

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 is self-contained. It has no dependency on any other package of the suite and is equally useful on its own.
It 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/
Install the released version from CRAN:
install.packages("bedrock")Or the development version from GitHub:
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()num(), int(),
chr(), nchr(), bin()Predicates and checks for data quality and structure.
isNumeric(), isDichotomous(),
isLowCardinality(), isWholeLike(),
isZero(), isNA()allDuplicated(), allIdentical(),
completeColumns(), countCompCases(),
flags()%[]%, %()%,
%[)%, %(]%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()nDec(), prec(), frac(),
maxDigits()rankX(), percentRank(),
nUnique()dotProd(), crossProd(),
crossProdN()unirootAll(), untable()primes(), isPrime(),
factorize(), divisors()GCD() / LCM(), fibonacci(),
digitSum(), isOdd()decToBin(), decToHex(),
decToOct(), baseToBase(),
romanToInt()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 labelsbuildPath(), splitPath()findDownload(), readDownload(),
peekFile()fileExistURL(), pdfManual()parseSASDatalines() โ parse SAS DATALINES blocks into a
data.framecallIf(), 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.
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)Parts of the code and documentation were reviewed with the help of large language models (OpenAI Codex, Anthropic Claude). Every suggestion was assessed, edited and verified by the maintainer, who remains solely responsible for the content of this package.
GPL (โฅ 2)
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.