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.

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.

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.