R: Concatenating vectors into human-readable strings

hpaste {R.utils} | R Documentation

## Concatenating vectors into human-readable strings

### Description

Concatenating vectors into human-readable strings such as "1, 2, 3, ..., 10".

### Usage

    ## Default S3 method:
    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, 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.
`maxHead, maxTail, abbreviate` | 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]`.

### Details

`hpaste(..., sep=" ", maxHead=Inf)` corresponds to `paste(..., sep=" ", collapse=", ")`.

### Value

Returns a `character` string.

### Author(s)

Henrik Bengtsson

### See Also

Internally `paste`() is used.

### Examples

    # 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))

[Package R.utils version 2.7.0 Index]