R: String Alignment

StrAlign {DescTools} | R Documentation

## String Alignment

### Description

Align a vector of strings to the left, to the right, to the center or to the first occurance of a specified character, e.g. to the decimal separator. Alignment is achieved by padding the strings with empty spaces (which evidently only will have an alignment effect if the text is displayed with a monospaced font).

### Usage

    StrAlign(x, sep = "\\r")

### Arguments

`x` | a character vector to be aligned.
`sep` | the character on whose position the strings will be aligned. Left alignment can be requested by setting `sep = "\\l"`, right alignment by `"\\r"` and center alignment by `"\\c"`. Mind the backslashes, as if they are omitted, strings would be aligned to the character l, r or c respectively. Default value is `"\\r"`, thus right alignment.

### Details

Alignment to the left, right or center leave no room for misinterpretation. The function will determine the maximum string size in the vector, resize all the strings to this size by padding empty spaces either at the beginning or at the end of the strings. When it comes to center strings, it's not clear where to place strings with an even length in case the maximum length is odd (or vice versa). We will put the shorter distance of an uneven string at the left.
Any specific length of the strings can be created by `StrPad` if required.

In case of a given separator the strings will be aligned towards this separator. If a string does not contain the separator, the affected string will be aligned as if it had a separator as last character. This seems to be a good default, when integer numbers are to be aligned with numerical values. Note that the character length of the resulting strings can excceed the maximum length of the supplied strings.

The character strings will not be pruned of whitespaces, if the requested alignment does not explicitly require it. `StrTrim` can be used for that.

### Value

a character vector containing the aligned strings

### Author(s)

Andri Signorell <andri@signorell.net>

### See Also

`StrTrim`, `StrPad`, `Format`

### Examples

    # align on (the first occuring) B
    x <- c("ABCDMNB", "CDGHEBK", "BCI")
    cbind(StrAlign(x, sep="B"))

    # align to decimal point
    z <- c("    6.0", "6.00  ", " 45.12    ", "784", NA)
    cbind(StrAlign(z, sep="."))

    # right align, the width will be the max number of characters in x
    cbind(StrAlign(x, sep="\\r"))
    # left align
    cbind(StrAlign(x, sep="\\l"))
    # center
    cbind(StrAlign(x, sep="\\c"))

[Package DescTools version 0.99.25 Index]