quickcode logo

quickcode

Quick and essential ‘R’ tricks for better, cleaner, more reproducible scripts.

CRAN status CRAN downloads License: MIT

quickcode is a collection of small, dependable helpers for everyday R scripting: a full family of not.* validation functions, PHP-style array/data-frame operations (push, pop, shuffle, rep), nullish-coalescing and “not in” operators, outlier and distribution detection, super variables, function-usage tracking, RStudio snippet addins, and more. None of it is flashy — it just removes boilerplate you’d otherwise rewrite in every project.

Installation

Install the released version from CRAN:

install.packages("quickcode")

Or install the development version from GitHub:

# install.packages("devtools")
devtools::install_github("oobianom/quickcode")

Load it like any other package:

library(quickcode)

Why quickcode

Quick examples

The not.* family

not.null(NULL)      # TRUE
not.na(NA)           # FALSE
not.integer(45L)     # FALSE
not.integer(45)      # TRUE

Nullish coalescing and “not in”

NULL %or% "default"        # "default"
NA %or% "default"          # "default"
5 %or% "default"           # 5

5 %nin% c(1:10)            # FALSE
5 %nin% c(11:20)           # TRUE

PHP-style vector and data frame helpers

p1 <- c(6, 7, 8)
p2 <- c(1, 2, 3)
vector_push(p1, p2)
p1
#> [1] 6 7 8 1 2 3

df1 <- data.frame(ID = 1:10, ID2 = 1:10)
df2 <- data.frame(ID = 11:20, ID2 = 21:30)
data_push(df1, df2, "rows")

One-line variable initialization

init(a, b, c)               # a, b, c set to NULL
init(x, y, z, value = 5)    # x, y, z set to 5

Environment reset

quickcode::refresh()

quickcode::clean(
  setwd  = "/path/to/project",
  source = c("file1.R", "file2.R"),
  load   = c("data.RData")
)

Super variables

newSuperVar(config, value = list(threshold = 10), lock = TRUE)
config                 # view current value
config.set(list(threshold = 20))  # blocked while locked

Outlier and distribution checks

x <- c(rnorm(100), 50)
detect_outlier2(x)
zscore(x)
is.normal(rnorm(100))

See vignette("quickcode_r_introduction") for a longer walkthrough.

Function reference

NOT / validation functions

Function Description
not.null Not NULL
not.na Not NA
not.empty / is.empty Not empty / is empty
not.numeric Not numeric
not.integer Not an integer
not.logical Not logical
not.vector Not a vector
not.data Not a data object
not.duplicated Not duplicated elements
not.environment Not an environment
not.image / is.image File extension is/isn’t an image
not.inherits Does not inherit from specified classes
not.exists Object does not exist
has.error Check if a call or expression produces an error

Operators

Operator Description
%nin% (alias %!in%) Not in vector or array
%or% Nullish coalescing operator
%eo% Error coalescing operator
%match% Percentage string similarity match
%.% Simple function chaining

PHP-style array / data operations

Function Description
vector_push / vector_pop Add / remove elements from a vector
list_push Add elements to a list
data_push / data_pop Add / remove rows or columns from a data frame
data_pop_filter Remove elements from data matching a filter
data_rep / rows.rep / cols.rep Duplicate rows or columns X times
data_shuffle / list_shuffle / vector_shuffle Shuffle a data frame, list, or vector
switch_rows / switch_cols Swap two rows or columns
sample_by_column Re-sample a dataset by column
mutate_filter Mutate only a subset of a dataset
add_key (alias indexed) Add index keys to a vector, list, data frame, or matrix

Variables & environment

Function Description
init Initialize one or more variables/objects at once
newSuperVar Create a variable accessible/mutable from any scope, with locking and edit limits
setOnce Set a variable only once
refresh / clean / libraryAll Clear environment/console, reset working directory, load files & libraries
summarize.envobj Summarize environment objects and their sizes
lastwd Return to the previous working directory

Statistics, outliers & distributions

Function Description
zscore / zscore_outlier / zscore_outlier2 Z-score calculation and z-score-based outlier flagging
detect_outlier / detect_outlier2 / iqr_outlier Outlier detection (including grouped)
is.normal, is.lognormal, is.uniform, is.poisson, is.gamma, is.weibull, is.cauchy, is.logistic Test whether data fits a given distribution
getDistribution Fit-check data against a distribution
geo.mean, geo.sd, geo.cv Geometric mean, standard deviation, coefficient of variation
mode.calc Mode of a numeric or character vector
na.cumsum Cumulative sum with NA removal
normalize.vector Normalize a numeric vector to [0, 1]
sub.range / in.range Range difference / range membership checks
unique_len Combine unique() and length()
pairDist Distance of points from a cluster center
compHist Compare histograms of two distributions

Machine learning & modeling utilities

Function Description
cat_to_num / cat_to_num2 Convert categorical values to numeric
from_tensor_slices Create tensor-like slices from a data frame or matrix
multihead_att Multi-head attention computation
learn_rate_scheduler Learning rate scheduling utilities
make_dosing_df Create subject-by-time dosing records with covariates

Strings & text

Function Description
bionic_txt Generate bionic-reading formatted text
randString Generate a random string
strsplit.bool / strsplit.num Split a string into a boolean / numeric vector
percent_match Percentage match between two strings
ndecimal Count decimal places in a number
as.boolean / yesNoBool Convert between boolean representations
extract_comment / remove_comment / remove_content_in_quotes Text/comment extraction and cleanup
getDate Extract all dates from a string
extract_IP Extract IP addresses from a string

Dates

Function Description
date1to3 / date3to1 Combine vectors into a Date, or split a Date into vectors
getWeekSeq Convert dates into numeric week counts
is.leap Check whether a year is a leap year
fAddDate Append a date to a filename
is.increasing / is.decreasing Check whether values in a vector are increasing/decreasing

Files & filesystem

Function Description
duplicate Duplicate a file with global text replacement
ai.duplicate Prompt-guided duplication and editing of files
trim.file Remove empty lines from a file
sort_file_type / sort_length Sort a vector by file type or content length
read.csv.print / read.table.print Read and preview the first X rows/columns of a file
insertInText Insert a string into the current RStudio file (Shiny helper)

RStudio addins & snippets

Addin / function Description
add.header Add a header comment to the current R file
header.rmd Add a header comment to the current Rmd file
add.sect.comment Insert a custom section comment
add.snippet.clear Insert a console-clear / set-directory snippet

Colors & shapes

Function Description
rcolorconst Named R color constants
mix.color / mix.cols.btw Blend two or more colors
setDisAlpha / unsetDisAlpha Set/unset color transparency
create_shape Create geometric shapes with optional text

Package & repo utilities

Function Description
find_packages Search CRAN packages by keyword
archivedPkg List all CRAN-archived R packages
rDecomPkg Check whether a package has been decommissioned from CRAN
getGitRepoStart / getGitRepoChange Fetch a GitHub repo’s creation / last-updated date
track_func Track function call frequency, timing, and usage patterns

Math & misc

Function Description
plus / minus / inc Increment or decrement a vector by a value
number Generate random integers
const Common mathematical constants
math.mm / math.qt Miscellaneous math and confidence-interval computations
error.out (%eo%) Return an alternative value if an expression errors
or (%or%) Return an alternative value if an expression is empty/NA/NULL
chain_sep (%.%) / chain_func Simple function chaining

This list covers the most commonly used functions; run library(help = "quickcode") or browse the man/ directory for the complete, authoritative reference with full argument details and runnable examples.

Vignettes

Getting help

Authors

License

MIT © Obinna Obianom. See LICENSE for details.