R Utility Functions for the 99%
An assortment of helper functions for managing data (e.g., rotating values in matrices by a user-defined angle, switching from row- to column-indexing), dates (e.g., intuiting year from messy date strings), handling missing values (e.g., removing elements/rows across multiple vectors or matrices if any have an NA), text (e.g., flushing reports to the console in real-time); and combining data frames with different schema (copying, filling, or concatenating columns or applying functions before combining).
As of version 1.1.2, omnibus
is on CRAN! You can install the latest CRAN-stable version the normal way you install packages from CRAN, or the development version by using:
remotes::install_github('adamlilith/omnibus', dependencies=TRUE)
You may need to install the remotes
package first.
appendLists()
: Merge lists, appending elements with the same name.bracket()
: Find values that bracket a given number.combineDf()
: Combine data frames with different schema.compareFloat()
: Compare two values to within floating-point precision.convertUnits()
: Convert length or areal units.conversionFactors()
: Data frame of conversion factors for length or areal units.corner()
: Corner of a matrix or data frame.cull()
: Force vectors or matrices/data frames to have the same length or number of rows.expandUnits()
: Convert unit abbreviations to proper unit names.insert()
: Insert values into a vector.insertCol
and insertRow()
: Insert column(s)/row(s) in a matrix or data frame.maxRuns()
: Maximum number of continuous "runs" of values meeting a particular condition.mergeLists()
: Merge lists, with precedence for elements of one list over another if they have the same names.mirror()
: Flip an object left-right (or up-down).mmode()
: Modal value(s).notIn()
and %notin%
: Opposite of %in%
.renameCol()
: Rename a column.renumSeq()
: Renumber a sequence.rotateMatrix()
: Rotate a matrix.roundTo()
: Rounds a value to the nearest target value.rowColIndexing()
: Convert between row and column indexing of a matrix.side()
: Left/right side of a data frame or matrix.stretchMinMax()
: Rescale values to a given range.unlistRecursive()
: For any object in a list that is also a list, unlist it.unragMatrix()
: Turn a "ragged" matrix into a "ragged" vector.domLeap()
: Data frame of days of each month in a leap year.domNonLeap()
: Data frame of days of each month in a non-leap year.doyLeap()
: Data frame of days of year in a leap year.doyNonLeap()
: Data frame of days of year in a non-leap year.isLeapYear()
: Is a year a leap year?yearFromDate()
: Attempt to find the year across dates with non-standard formats.pairDist()
: Pairwise Euclidean distance between two sets of points.quadArea()
: Area of a quadrilateral.%<na%
, %<=na%
, %==na%
, %!=na%
, %>na%
, and %>=na%
: Comparative operations (>, >=, ==, !=, <, <=) but returns FALSE
for NA
cases (versus NA
).isTRUENA
and isFALSENA()
: Logical operators robust to NA
.naCompare()
: Comparative operations (>, >=, ==, !=, <, <=) but returns FALSE
for NA
cases (versus NA
).naOmitMulti()
: Remove elements of multiple vectors if at least one element is NA
or rows of matrices/data frames if at least one row has an NA
.naRows()
: Indices of rows with at least one NA
.countDecDigits()
: Count number of digits after a decimal.is.wholeNumber()
: Is a numeric value a whole number, to within floating-point precision?longRun()
: Longest run of a given sequence in a vector.roundedSigDigits()
: Infers the number of significant digits represented by a decimal representation of a division operation or digits place to which an integer was rounded.which.pmax
and which.pmin()
: Combine which.max
with pmax
and which.min
with pmin
(vectorized which.max
and which.min
).dirCreate()
: Nicer version of dir.create()
.eps()
: Smallest floating point value your computer can think of.listFiles()
: Nicer version of list.files()
.memUse()
: Display largest objects in memory.capIt()
: Capitalize first letter of a string.forwardSlash()
: Convert backslashes to forward slashes.pmatchSafe()
: Partial matching of strings with error checking.prefix()
: Add repeating character to a string to ensure it has a user-defined length (e.g., 7
--> 007
).rstring()
: Make a nearly-guaranteed unique string.say()
: Replacement for print('abc'); flush.console()
.Adam
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.