当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。