R: Concatenate Strings (2025)

paste {base}R Documentation

Description

Concatenate vectors after converting to character.Concatenation happens in two basically different ways, determined bycollapse being a string or not.

Usage

paste (..., sep = " ", collapse = NULL, recycle0 = FALSE)paste0(..., collapse = NULL, recycle0 = FALSE)

Arguments

...

one or more R objects, to be converted to character vectors.

sep

a character string to separate the terms. NotNA_character_.

collapse

an optional character string to separate the results. NotNA_character_. When collapse is a string,the result is always a string (character of length 1).

recycle0

logical indicating if zero-lengthcharacter arguments should result in the zero-lengthcharacter(0). Note that when collapse isa string, recycle0 does not recycle to zero-length, butto "".

Details

paste converts its arguments (viaas.character) to character strings, and concatenatesthem (separating them by the string given by sep).

If the arguments are vectors, they are concatenated term-by-term to give acharacter vector result. Vector arguments are recycled as needed.Zero-length arguments are recycled as "" unless recycle0is TRUE and collapse is NULL.

Note that paste() coerces NA_character_, thecharacter missing value, to "NA" which may seemundesirable, e.g., when pasting two character vectors, or verydesirable, e.g. in paste("the value of p is ", p).

paste0(..., collapse) is equivalent topaste(..., sep = "", collapse), slightly more efficiently.

If a value is specified for collapse, the values in the resultare then concatenated into a single string, with the elements beingseparated by the value of collapse.

Value

A character vector of the concatenated values. This will be of lengthzero if all the objects are, unless collapse is non-NULL, in whichcase it is "" (a single empty string).

If any input into an element of the result is in UTF-8 (and none aredeclared with encoding "bytes", see Encoding),that element will be in UTF-8, otherwise in the current encoding inwhich case the encoding of the element is declared if the currentlocale is either Latin-1 or UTF-8, at least one of the correspondinginputs (including separators) had a declared encoding and all inputswere either ASCII or declared.

If an input into an element is declared with encoding "bytes",no translation will be done of any of the elements and the resultingelement will have encoding "bytes". If collapse isnon-NULL, this applies also to the second, collapsing, phase, but sometranslation may have been done in pasting object together in the firstphase.

References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)The New S Language.Wadsworth & Brooks/Cole.

See Also

toString typically calls paste(*, collapse=", ").String manipulation withas.character, substr, nchar,strsplit; further, cat which concatenates andwrites to a file, and sprintf for C like stringconstruction.

plotmath’ for the use of paste in plot annotation.

Examples

## When passing a single vector, paste0 and paste work like as.character.paste0(1:12)paste(1:12) # sameas.character(1:12) # same## If you pass several vectors to paste0, they are concatenated in a## vectorized way.(nth <- paste0(1:12, c("st", "nd", "rd", rep("th", 9))))## paste works the same, but separates each input with a space.## Notice that the recycling rules make every input as long as the longest input.paste(month.abb, "is the", nth, "month of the year.")paste(month.abb, letters)## You can change the separator by passing a sep argument## which can be multiple characters.paste(month.abb, "is the", nth, "month of the year.", sep = "_*_")## To collapse the output into a single string, pass a collapse argument.paste0(nth, collapse = ", ")## For inputs of length 1, use the sep argument rather than collapsepaste("1st", "2nd", "3rd", collapse = ", ") # probably not what you wantedpaste("1st", "2nd", "3rd", sep = ", ")## You can combine the sep and collapse arguments together.paste(month.abb, nth, sep = ": ", collapse = "; ")## Using paste() in combination with strwrap() can be useful## for dealing with long strings.(title <- paste(strwrap( "Stopping distance of cars (ft) vs. speed (mph) from Ezekiel (1930)", width = 30), collapse = "\n"))plot(dist ~ speed, cars, main = title)## zero length arguments recycled as `""` -- NB: `{}` <==> character(0) herepaste({}, 1:2)## 'recycle0 = TRUE' allows standard vectorized behaviour, i.e., zero-length## recycling resulting in zero-length result character(0):valid <- FALSEval <- pipaste("The value is", val[valid], "-- not so good!") # -> ".. value is -- not .."paste("The value is", val[valid], "-- good: empty!", recycle0=TRUE) # -> character(0)## When 'collapse = <string>', result is (length 1) string in all casespaste("foo", {}, "bar", collapse = "|") # |--> "foo bar"paste("foo", {}, collapse = "|", recycle0 = TRUE) # |--> ""## If all arguments are empty (and collapse a string), "" results alwayspaste( collapse = "|")paste( collapse = "|", recycle0 = TRUE)paste({}, collapse = "|")paste({}, collapse = "|", recycle0 = TRUE)

[Package base version 4.5.0 Index]

R: Concatenate Strings (2025)
Top Articles
Latest Posts
Recommended Articles
Article information

Author: Rueben Jacobs

Last Updated:

Views: 6516

Rating: 4.7 / 5 (77 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Rueben Jacobs

Birthday: 1999-03-14

Address: 951 Caterina Walk, Schambergerside, CA 67667-0896

Phone: +6881806848632

Job: Internal Education Planner

Hobby: Candle making, Cabaret, Poi, Gambling, Rock climbing, Wood carving, Computer programming

Introduction: My name is Rueben Jacobs, I am a cooperative, beautiful, kind, comfortable, glamorous, open, magnificent person who loves writing and wants to share my knowledge and understanding with you.