R: Pad (Center/Left/Right Align) a String

stri_pad_both {stringi} | R Documentation

## Pad (Center/Left/Right Align) a String

### Description

Adds multiple `pad` characters at the given `side`(s) of each string so that each output string is of total width of at least `width`. This function may be used to center or left/right-align each string.

### Usage

    stri_pad_both(str, width = floor(0.9 * getOption("width")), pad = " ",
      use_length = FALSE)

    stri_pad_left(str, width = floor(0.9 * getOption("width")), pad = " ",
      use_length = FALSE)

    stri_pad_right(str, width = floor(0.9 * getOption("width")), pad = " ",
      use_length = FALSE)

    stri_pad(str, width = floor(0.9 * getOption("width")), side = c("left",
      "right", "both"), pad = " ", use_length = FALSE)

### Arguments

`str` | character vector
`width` | integer vector giving minimal output string lengths
`pad` | character vector giving padding code points
`use_length` | single logical value; should the number of code points be used instead of the total code point width (see `stri_width`)?
`side` | [`stri_pad` only] single character string; sides on which padding character is added (`left`, `right`, or `both`)

### Details

Vectorized over `str`, `width`, and `pad`. Each string in `pad` should consist of a code points of total width equal to 1 or, if `use_length` is `TRUE`, exactly one code point.

`stri_pad` is a convenience function, which dispatches control to `stri_pad_*`. Relying on one of the underlying functions will make your code run slightly faster.

Note that Unicode code points may have various widths when printed on the console and that the function takes that by default into account. By changing the state of the `use_length` argument, this function starts to act like each code point was of width 1. This feature should rather be used with text in Latin script.

See `stri_trim_left` (among others) for reverse operation. Also check out `stri_wrap` for line wrapping.

### Value

Returns a character vector.

### Examples

    stri_pad_left("stringi", 10, pad="#")
    stri_pad_both("stringi", 8:12, pad="*")
    # center on screen:
    cat(stri_pad_both(c("the", "string", "processing", "package"),
       getOption("width")*0.9), sep='\n')
    cat(stri_pad_both(c("\ud6c8\ubbfc\uc815\uc74c", # takes width into account
       stri_trans_nfkd("\ud6c8\ubbfc\uc815\uc74c"), "abcd"),
       width=10), sep="\n")

[Package stringi version 1.2.4 Index]