Features:
custom separator (sep
),
custom separator for length-two input (sep2
),
custom last separator (last
),
adds ellipsis to truncated strings,
uses Unicode ellipsis character on UTF-8 console,
can collapse "from both ends", with style = "both-ends"
,
can consider a limit for the display width of the result, in characters,
handles ANSI control sequences correctly when measuring display width.
ansi_collapse(
x,
sep = ", ",
sep2 = sub("^,", "", last),
last = ", and ",
trunc = Inf,
width = Inf,
ellipsis = symbol$ellipsis,
style = c("both-ends", "head")
)
Character scalar. It is NA_character_
if any elements in x
are NA
.
Character vector, or an object with an as.character()
method
to collapse.
Separator. A character string.
Separator for the special case that x
contains only two
elements. A character string. Defaults to the value of last
without the
serial comma.
Last separator, if there is no truncation. E.g. use
", and "
for the serial comma. A character string.
Maximum number of elements to show. For style = "head"
at least trunc = 1
is used. For style = "both-ends"
at least
trunc = 5
is used, even if a smaller number is specified.
Limit for the display width of the result, in characters.
This is a hard limit, and the output will never exceed it.
This argument is not implemented for the "both-ends"
style, which
always uses Inf
, with a warning if a finite width
value is set.
Character string to use at the place of the truncation. By default, the Unicode ellipsis character is used if the console is UTF-8, and three dots otherwise.
Truncation style:
both-ends
: the default, shows the beginning and end of the vector,
and skips elements in the middle if needed.
head
: shows the beginning of the vector, and skips elements at the
end, if needed.
glue_collapse
in the glue package inspired this function.
ansi_collapse(letters)
# truncate
ansi_collapse(letters, trunc = 5)
# head style
ansi_collapse(letters, trunc = 5, style = "head")
Run the code above in your browser using DataLab