Learn R Programming

huxtable (version 5.5.7)

align: Set the horizontal alignment of cell content

Description

Values may be "left", "center", "right", NA or a single character. If value is a single character (e.g. a decimal point), then the cell is aligned on this character.

Usage

align(ht)
align(ht) <- value
set_align(ht, row, col, value )
map_align(ht, row, col, fn)

Value

align() returns the align property. set_align() returns the modified huxtable.

Arguments

ht

A huxtable.

row

A row specifier. See rowspecs for details.

col

An optional column specifier.

fn

A mapping function. See mapping-functions for details.

value

A character vector or matrix.

Set to NA to reset to the default, which is "left".

Aligning on a decimal point

To align cells on the decimal point, set align to "." or any other single character (e.g. "," in European languages).

By default, huxtable aligns these cells by padding with spaces. The mechanics of this were improved for LaTeX in version 5.3.0, but are still not perfect. Using a fixed-width font may help.

If options("huxtable.latex_siunitx_align") is set to TRUE, then in LaTeX output, numbers in these cells will be surrounded by \\tablenum{}. See the siunitx documentation for more details. Note that this may have other side-effects, for example 1e3 becomes 1 x 10^3.

To use non-default decimal points, set both align(ht) and number_format(). See the example.

Examples

Run this code

numbers <- c(1, 1.5, 1.03, 10, 10.01)
number_hux <- as_hux(matrix(numbers, 5, 5))
number_format(number_hux) <- "%.4g"
number_format(number_hux)[, 5] <- fmt_pretty(
                                    decimal.mark = ",",
                                    big.mark = ""
                                  )

number_hux <- map_align(number_hux,
      by_cols("left", "center", "right", ".", ","))

alignments <- c(
                 "left",
                 "centre",
                 "right",
                 "decimal (.)",
                 "decimal (,)"
               )
number_hux <- rbind(
        alignments,
        number_hux
      )

align(number_hux)
number_hux


Run the code above in your browser using DataLab