hpaste.Rd
Concatenating vectors into human-readable strings such as "1, 2, 3, ..., 10".
Arguments to be pasted.
A character
string used to concatenate the arguments
in ...
, if more than one.
The character
strings to collapse
the elements together, where lastCollapse
is specifying
the collapse string used between the last two elements.
If lastCollapse
is NULL
(default), it is corresponds
to using the default collapse.
Non-negative integer
s (also Inf
)
specifying the maximum number of elements of the beginning and
then end of the vector to be outputted. If n = length(x)
is greater than maxHead+maxTail+1
, then x
is
truncated to consist of x[1:maxHead]
, abbreviate
,
and x[(n-maxTail+1):n]
.
A character
string, or character(0)
(default),
to be returned in case the result is of length zero.
Returns a character
string.
hpaste(..., sep=" ", maxHead=Inf)
corresponds to
paste(..., sep=" ", collapse=", ")
.
Internally paste
() is used.
# Some vectors
x <- 1:6
y <- 10:1
z <- LETTERS[x]
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Abbreviation of output vector
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
printf("x = %s.\n", hpaste(x))
#> x = 1, 2, 3, ..., 6.
## x = 1, 2, 3, ..., 6.
printf("x = %s.\n", hpaste(x, maxHead=2))
#> x = 1, 2, ..., 6.
## x = 1, 2, ..., 6.
printf("x = %s.\n", hpaste(x, maxHead=3)) # Default
#> x = 1, 2, 3, ..., 6.
## x = 1, 2, 3, ..., 6.
# It will never output 1, 2, 3, 4, ..., 6
printf("x = %s.\n", hpaste(x, maxHead=4))
#> x = 1, 2, 3, 4, 5, 6.
## x = 1, 2, 3, 4, 5, 6.
# Showing the tail
printf("x = %s.\n", hpaste(x, maxHead=1, maxTail=2))
#> x = 1, ..., 5, 6.
## x = 1, ..., 5, 6.
# Turning off abbreviation
printf("y = %s.\n", hpaste(y, maxHead=Inf))
#> y = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
## y = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
## ...or simply
printf("y = %s.\n", paste(y, collapse=", "))
#> y = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
## y = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Adding a special separator before the last element
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Change last separator
printf("x = %s.\n", hpaste(x, lastCollapse=", and "))
#> x = 1, 2, 3, 4, 5, and 6.
## x = 1, 2, 3, 4, 5, and 6.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Backward compatibility with paste()
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
s1 <- hpaste(x, maxHead=Inf)
s2 <- paste(x, collapse=", ")
printf("s = %s.\n", s1);
#> s = 1, 2, 3, 4, 5, 6.
stopifnot(identical(s1, s2))
s1 <- hpaste('<', x, '>', maxHead=Inf)
s2 <- paste('<', x, '>', sep="", collapse=", ")
printf("s = %s.\n", s1);
#> s = <1>, <2>, <3>, <4>, <5>, <6>.
stopifnot(identical(s1, s2))
s1 <- hpaste(x, y, z, sep="/", maxHead=Inf)
s2 <- paste(x, y, z, sep="/", collapse=", ")
printf("s = %s.\n", s1);
#> s = 1/10/A, 2/9/B, 3/8/C, 4/7/D, 5/6/E, 6/5/F, 1/4/A, 2/3/B, 3/2/C, 4/1/D.
stopifnot(identical(s1, s2))
s1 <- hpaste(x, collapse=NULL, maxHead=Inf)
s2 <- paste(x, collapse=NULL)
stopifnot(identical(s1, s2))