Hide navigation sidebar
Hide table of contents sidebar
Back to top
Edit this page
Toggle table of contents sidebar

# operator_dollar: as a Binary Operator

## Description

Provides access to `stri_sprintf` in form of a binary operator in a way similar to Python’s `%` overloaded for strings.

Missing values and empty vectors are propagated as usual.

## Usage

    e1 %s$% e2

    e1 %stri$% e2

## Arguments

`e1` | format strings, see `stri_sprintf` for syntax
`e2` | a list of atomic vectors to be passed to `stri_sprintf` or a single atomic vector

## Details

Vectorized over `e1` and `e2`.

`e1 %s$% atomic_vector` is equivalent to `e1 %s$% list(atomic_vector)`.

## Value

Returns a character vector.

## Author(s)

Marek Gagolewski and other contributors

## See Also

The official online manual of stringi at https://stringi.gagolewski.com/

Gagolewski M., stringi: Fast and portable character string processing in R, Journal of Statistical Software 103(2), 2022, 1-59, doi:10.18637/jss.v103.i02

Other length: `stri_isempty()`, `stri_length()`, `stri_numbytes()`, `stri_pad_both()`, `stri_sprintf()`, `stri_width()`

## Examples

    "value='%d'" %s$% 3
    ## [1] "value='3'"
    "value='%d'" %s$% 1:3
    ## [1] "value='1'" "value='2'" "value='3'"
    "%s='%d'" %s$% list("value", 3)
    ## [1] "value='3'"
    "%s='%d'" %s$% list("value", 1:3)
    ## [1] "value='1'" "value='2'" "value='3'"
    "%s='%d'" %s$% list(c("a", "b", "c"), 1)
    ## [1] "a='1'" "b='1'" "c='1'"
    "%s='%d'" %s$% list(c("a", "b", "c"), 1:3)
    ## [1] "a='1'" "b='2'" "c='3'"
    x <- c("abcd", "\u00DF\u00B5\U0001F970", "abcdef")
    cat("[%6s]" %s$% x, sep="\n")  # width used, not the number of bytes
    ## [  abcd]
    ## [  ßµ🥰]
    ## [abcdef]