Learn R Programming

omnibus

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).

Installation

As of version 1.1.2, omnibus is on CRAN! You can install the latest version on CRAN using:

devtools::install.padckages('omnibus')

... or the development version with:

remotes::install_github('adamlilith/omnibus', dependencies = TRUE)

You may need to install the remotes package first.

Data manipulation

  • 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.
  • runifMatrix(): Create a matrix of random uniform values, possibly with standardization by row or column.
  • unlistRecursive(): For any object in a list that is also a list, unlist it.
  • unragMatrix(): Turn a "ragged" matrix into a "ragged" vector.

Dates

  • 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.

Geometry

  • pairDist(): Pairwise Euclidean distance between two sets of points.
  • quadArea(): Area of a quadrilateral.

Handling NAs

  • %<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.

Data properties

  • 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).

System

  • 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.
  • screenRes(): Get screen resolution in pixels.

Text

  • 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

Copy Link

Version

Install

install.packages('omnibus')

Monthly Downloads

705

Version

1.2.15

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Adam B. Smith

Last Published

April 3rd, 2025

Functions in omnibus (1.2.15)

appendLists

Append values to elements of a list from another list
dirCreate

Replacement for dir.create()
combineDf

Combine data frames with different fields using a crosswalk table
countDecDigits

Number of digits after a decimal place
domNonLeap

Day of month for non-leap years
doyLeap

Day of year for leap years
compareFloat

Compare values to floating-point precision
bracket

Identify values bracketing another value
conversionFactors

Data frame or conversion factors for length or areal units
doyNonLeap

Days of year for non-leap years
cull

Force objects to have length or rows equal to the shortest
insert

Insert values into a vector
domLeap

Day of month for leap years
eps

The smallest machine-readable number
pmatchSafe

Partial matching of strings with error checking
prefix

Add leading characters to a string
corner

Corner of a matrix or data frame
expandUnits

Convert unit abbreviations to proper unit names
insertCol

Insert a column or row into a data frame or matrix
memUse

Size of objects taking most memory use
isTRUENA

Vectorized test for truth robust to NA
longRun

Length of the longest run of a particular value in a numeric vector
forwardSlash

Replace backslash with forward slash
maxRuns

Maximum number of continuous "runs" of values meeting a particular condition
omnibus

omnibus: Fantabulous helper functions
pairDist

Calculate pairwise distances between two matrices or data frames.
is.wholeNumber

Test if a numeric value is a whole number
listFiles

Replacement for list.files()
isLeapYear

Is a year a leap year?
mirror

Flip an object
mmode

Modal value(s)
renumSeq

Renumber a sequence of numbers
naRows

Index of rows in a data frame or matrix that contain at least one NA
rotateMatrix

Rotate values in a matrix
rowColIndexing

Convert between row- and column-style indexing of matrices
stretchMinMax

Rescale values
rstring

Make a nearly-guaranteed unique string
notIn

Opposite of '%in%'
quadArea

Area of a quadrilateral
yearFromDate

Year from date formats that are possibly ambiguous
renameCol

Rename columns
mergeLists

Merge two lists with precedence
roundTo

Round to nearest target value
screenRes

Find screen resolution
roundedSigDigits

Number of significant digits in rounded numbers
naCompare

Compare values using <, <=, >, >=, !=, and == (robust to NAs)
side

Left/right side of a data frame or matrix
unlistRecursive

For any object in a list that is also a list, unlist it
naOmitMulti

Remove NAs from one or more equal-length vectors
runifMatrix

Matrix of random values, possibly with standardization by row or column
say

Nicer version of print() or cat() function
unragMatrix

Turn a "ragged" matrix into a "ragged" vector
which.pmax

Which vector has maximum value at each element
capIt

Capitalize first letter of a string
convertUnits

Convert length or areal units