R: Concatenate Strings (2024)

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 (2024)

References

Top Articles
Latest Posts
Article information

Author: Amb. Frankie Simonis

Last Updated:

Views: 6221

Rating: 4.6 / 5 (56 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Amb. Frankie Simonis

Birthday: 1998-02-19

Address: 64841 Delmar Isle, North Wiley, OR 74073

Phone: +17844167847676

Job: Forward IT Agent

Hobby: LARPing, Kitesurfing, Sewing, Digital arts, Sand art, Gardening, Dance

Introduction: My name is Amb. Frankie Simonis, I am a hilarious, enchanting, energetic, cooperative, innocent, cute, joyous person who loves writing and wants to share my knowledge and understanding with you.