hpaste
Concatenating vectors into human-readable strings
Concatenating vectors into human-readable strings such as "1, 2, 3, ..., 10".
- Keywords
- programming
Usage
# S3 method for default
hpaste(..., sep="", collapse=", ", lastCollapse=NULL,
maxHead=if (missing(lastCollapse)) 3 else Inf,
maxTail=if (is.finite(maxHead)) 1 else Inf, abbreviate="...")
Arguments
- ...
Arguments to be pasted.
- sep
A
character
string used to concatenate the arguments in...
, if more than one.- collapse, lastCollapse
The
character
strings to collapse the elements together, wherelastCollapse
is specifying the collapse string used between the last two elements. IflastCollapse
isNULL
(default), it is corresponds to using the default collapse.- maxHead, maxTail, abbreviate
Non-negative
integer
s (alsoInf
) specifying the maximum number of elements of the beginning and then end of the vector to be outputted. Ifn = length(x)
is greater thanmaxHead+maxTail+1
, thenx
is truncated to consist ofx[1:maxHead]
,abbreviate
, andx[(n-maxTail+1):n]
.
Details
hpaste(..., sep=" ", maxHead=Inf)
corresponds to
paste(..., sep=" ", collapse=", ")
.
Value
Returns a character
string.
See Also
Internally paste
() is used.
Examples
# NOT RUN {
# 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.
printf("x = %s.\n", hpaste(x, maxHead=2))
## x = 1, 2, ..., 6.
printf("x = %s.\n", hpaste(x), maxHead=3) # Default
## 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.
# Showing the tail
printf("x = %s.\n", hpaste(x, maxHead=1, maxTail=2))
## 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
## ...or simply
printf("y = %s.\n", paste(y, collapse=", "))
## 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.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Backward compatibility with paste()
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
s1 <- hpaste(x, maxHead=Inf)
s2 <- paste(x, collapse=", ")
printf("s = %s.\n", s1);
stopifnot(identical(s1, s2))
s1 <- hpaste('<', x, '>', maxHead=Inf)
s2 <- paste('<', x, '>', sep="", collapse=", ")
printf("s = %s.\n", s1);
stopifnot(identical(s1, s2))
s1 <- hpaste(x, y, z, sep="/", maxHead=Inf)
s2 <- paste(x, y, z, sep="/", collapse=", ")
printf("s = %s.\n", s1);
stopifnot(identical(s1, s2))
s1 <- hpaste(x, collapse=NULL, maxHead=Inf)
s2 <- paste(x, collapse=NULL)
stopifnot(identical(s1, s2))
# }