當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R paste 連接字符串


R語言 paste 位於 base 包(package)。

說明

轉換為字符後連接向量。

用法

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

參數

...

一個或多個R對象,要轉換為字符向量。

sep

用於分隔術語的字符串。不是NA_character_

collapse

用於分隔結果的可選字符串。不是NA_character_

recycle0

logical 指示零長度字符參數是否應在 sep 階段之後導致零長度 character(0)(在 collapse 階段變成 "",即當 collapse 不是時) NULL)。

細節

paste 將其參數(通過 as.character )轉換為字符串,並將它們連接起來(用 sep 給出的字符串分隔它們)。如果參數是向量,則它們將逐項連接以給出字符向量結果。向量參數根據需要回收,僅當 recycle0 不為 true 或 collapse 不是 NULL 時,零長度參數才會回收到 ""

請注意, paste() 將字符缺失值 NA_character_ 強製轉換為 "NA",這可能看起來不合需要,例如在粘貼兩個字符向量時,或者非常合需要,例如在paste("the value of p is ", p) 中。

paste0(..., collapse) 相當於 paste(..., sep = "", collapse) ,效率稍高一些。

如果為 collapse 指定了值,則結果中的值將連接成單個字符串,其中元素由 collapse 的值分隔。

連接值的字符向量。如果所有對象都是長度,則其長度為零,除非 collapse 為非 NULL,在這種情況下它是 ""(單個空字符串)。

如果結果元素的任何輸入都是 UTF-8 格式(並且沒有使用 "bytes" 編碼進行聲明,請參閱 Encoding ),則該元素將采用 UTF-8 格式,否則采用當前編碼,在這種情況下,編碼將采用如果當前語言環境是 Latin-1 或 UTF-8,則聲明該元素的 ,至少一個相應的輸入(包括分隔符)具有聲明的編碼,並且所有輸入都是 ASCII 或聲明的。

如果使用編碼 "bytes" 聲明元素的輸入,則不會對任何元素進行任何轉換,並且生成的元素將具有編碼 "bytes" 。如果 collapse 為非 NULL,則這也適用於第二個折疊階段,但在第一階段將對象粘貼在一起時可能已完成一些轉換。

例子

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

## 'recycle0 = TRUE' allows more vectorized behaviour, i.e. zero-length recycling :
valid <- FALSE
val <- pi
paste("The value is", val[valid], "-- not so good!")
paste("The value is", val[valid], "-- good: empty!", recycle0=TRUE) # -> character(0)
## When  'collapse = <string>',  the result is a length-1 string :
paste("foo", {}, "bar", collapse="|")                  # |-->  "foo  bar"
paste("foo", {}, "bar", collapse="|", recycle0 = TRUE) # |-->  ""
## all empty args
paste(	  collapse="|")                  # |-->  ""  as do all these:
paste(	  collapse="|", recycle0 = TRUE)
paste({}, collapse="|")
paste({}, collapse="|", recycle0 = TRUE)

參考

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

也可以看看

toString 通常調用 paste(*, collapse=", ") 。使用 as.charactersubstrncharstrsplit 進行字符串操作;此外,cat 連接並寫入文件,sprintf 用於類似 C 的字符串構造。

plotmath’用於在繪圖注釋中使用paste

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Concatenate Strings。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。