
paste (..., sep = " ", collapse = NULL)
paste0(..., collapse = NULL)
NA_character_
.NA_character_
.collapse
is non-NULL in
which case it is a single empty string.If any input into an element of the result is in UTF-8 (and none are
declared with encoding "bytes"
, (see Encoding
),
that element will be in UTF-8, otherwise in the current encoding in
which case the encoding of the element is declared if the current
locale is either Latin-1 or UTF-8, at least one of the corresponding
inputs (including separators) had a declared encoding and all inputs
were 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 resulting
element will have encoding "bytes"
. If collapse
is
non-NULL, this applies also to the second, collapsing, phase, but some
translation may have been done in pasting object together in the first
phase.
paste
converts its arguments (via
as.character
) to character strings, and concatenates
them (separating them by the string given by sep
). If the
arguments are vectors, they are concatenated term-by-term to give a
character vector result. Vector arguments are recycled as needed,
with zero-length arguments being recycled to ""
. Note that paste()
coerces NA_character_
, the
character missing value, to "NA"
which may seem
undesirable, e.g., when pasting two character vectors, or very
desirable, e.g.\ifelse{latex}{\out{~}}{ } in paste("the value of p is ", p)
.
paste0(..., collapse)
is equivalent to
paste(..., sep = "", collapse)
, slightly more efficiently.
If a value is specified for collapse
, the values in the result
are then concatenated into a single string, with the elements being
separated by the value of collapse
.
toString
typically calls paste(*, collapse=", ")
.
String manipulation with
as.character
, substr
, nchar
,
strsplit
; further, cat
which concatenates and
writes to a file, and sprintf
for C like string
construction. ‘plotmath’ for the use of paste
in plot annotation.
## When passing a single vector, paste0 and paste work like as.character.
paste0(1:12)
paste(1:12) # same
as.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 collapse
paste("1st", "2nd", "3rd", collapse = ", ") # probably not what you wanted
paste("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)
Run the code above in your browser using DataLab