Learn R Programming

stringx (version 0.2.9)

strrep: Duplicate Strings

Description

Concatenate a number of copies of each string.

Usage

strrep(x, times)

e1 %x*% e2

Value

A character vector (in UTF-8).

`%x*%` and strrep preserve object attributes in a similar way as other Arithmetic operators.

Arguments

e1, x

character vector (or an object coercible to) whose elements are to be duplicated

e2, times

numeric vector giving the number of times to repeat the corresponding strings

Differences from Base R

Replacement for base strrep implemented with stri_dup.

  • partial recycling with no warning "longer object length is not a multiple of shorter object length" [fixed here]

  • base strrep seems to preserve only the names attribute, and only if the input is of type character (whilst paste preserves nothing) [fixed]

  • overloading `*.character` has no effect in R, because S3 method dispatch is done internally with hard-coded support for character arguments. We could have replaced the generic `*` with the one that calls UseMethod, but it feels like a too intrusive solution [fixed by introducing `%x+%` operator]

Details

Both arguments are recycled if necessary.

The `%x*%` operator mimics a vectorised version of Python's `*` for strings (str.__mul__).

See Also

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

Related function(s): paste, sprintf

Examples

Run this code
x <- structure(c(A="a", B=NA, C="c"), attrib1="value1")
x %x*% 3
x %x*% 1:3
"a" %x*% 1:3
stringx::strrep(x, 3)
base::strrep(x, 3)
y <- matrix(1:6, nrow=2, dimnames=list(c("A", "B"), NULL))
y %x*% 1:2
stringx::strrep(y, 1:2)
base::strrep(y, 1:2)

Run the code above in your browser using DataLab