Learn R Programming

stringstatic

stringstatic provides a reimplementation of several functions from stringr. These functions are dependency free and can be copied directly into your package code using staticimports. This allows you to reap the benefits of stringr’s intuitive user interface without the overhead of stringr’s dependencies.

See section Pros and cons to decide whether stringstatic or stringr is a better fit for your package.

Installation

You can install the development version of stringstatic from GitHub:

# install.packages("pak")
pak::pkg_install("rossellhayes/stringstatic")

Usage

To import functions from stringstatic into your package, put a comment block starting with # @staticimports pkg:stringstatic in one of your R source files. For example, your utils.R file may have this at the top:

# @staticimports pkg:stringstatic
#  str_replace str_replace_all
#  str_subset

pkg:stringstatic means you will import functions from the stringstatic package. You can find many other useful functions in pkg:staticimports.

Subsequent lines list the objects to import from the package. In this case, they are str_replace(), str_replace_all() and str_subset().

To perform the import, run:

staticimports::import()

By default, this will write the functions to an R/staticimports.R file in your project.

Pros and cons

Pros

  • stringstatic does not depend on stringi, which is a heavy dependency that can increase install times if it is not already installed.
  • stringstatic functions can be copied directly into your package, meaning future breaking changes will not change functionality in your package.

Cons

  • stringi, which powers stringr, provides better Unicode support than R’s built-in regex engine. If you expect to work with non-ASCII text, stringr may provide better results.
    • While stringi is a heavy dependency, users are likely to already have it installed because it is included when installing the tidyverse.
  • If stringstatic functions are copied directly into your package, you will not automatically benefit from improvements or bug fixes.

Code of Conduct

Please note that the stringstatic project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.


Hex sticker image by Flavia Rossell Hayes.

Hex sticker font is Source Sans by Adobe.

Copy Link

Version

Install

install.packages('stringstatic')

Monthly Downloads

219

Version

0.1.2

License

CC0

Issues

Pull Requests

Stars

Forks

Maintainer

Alexander Rossell Hayes

Last Published

July 12th, 2023

Functions in stringstatic (0.1.2)

str_detect

Detect the presence or absence of a pattern in a string
str_replace_na

Turn NA into "NA"
str_match

Extract matched groups from a string
str_pad

Duplicate and concatenate strings within a character vector
str_replace

Replace matched patterns in a string
str_split

Split up a string into pieces
str_remove_all

Remove matched patterns in a string
str_remove

Remove matched patterns in a string
str_trim

Remove whitespace
str_replace_all

Replace matched patterns in a string
str_split_fixed

Split up a string into pieces
str_squish

Remove whitespace
str_width

Compute the width of a string
stringstatic-package

stringstatic: Dependency-Free String Operations
str_which

Find positions of strings matching a pattern
str_starts

Detect the presence or absence of a pattern at the beginning of a string
str_subset

Keep strings matching a pattern
regex

Control regex matching behavior
str_extract

Extract matching patterns from a string
str_ends

Detect the presence or absence of a pattern at the end of a string
str_length

Compute the length of a string
str_c

Join multiple strings into a single string
fixed

Compare literal bytes in the string
str_extract_all

Extract matching patterns from a string
str_count

Count the number of matches in a string
str_dup

Duplicate and concatenate strings within a character vector