在实践中,我们经常需要将多个字符串连接成一个。paste( )函数就是用来连接多

个字符向量的函数。这个函数也使用空格作为默认分隔符:

paste("Hello", "world")

## [1] "Hello world"

paste("Hello", "world", sep ="-")

## [1] "Hello-world"

如果不需要分隔符,可以设定 sep=""或者使用 paste0( ):

paste0("Hello", "world")

## [1] "Helloworld"

也许 paste( )和 cat( )会使你感到困惑,因为它们都能够用于连接字符串。那它们的

区别是什么呢?区别在于cat( )只是在控制台中打印出字符串,但是paste( )可以返回字符

串以便后续使用。接下来的代码显示:cat( )打印出了连接好的字符串,但是返回了NULL:

value1 <- cat("Hello", "world")

## Hello world

value1

## NULL

value2 <- paste("Hello", "world")

value2

## [1] "Hello world"

换句话说,cat( )仅仅打印了字符串,但是 paste( )创造了一个新的字符向量。

前面的例子展示了 paste( )处理单元素字符向量的行为。那么处理多元素向量的时

候呢?让我们看看它会怎么做:

paste(c("A", "B"), c("C", "D"))

## [1] "A C" "B D"

158 第 6 章 字符串的使用

可以看到 paste( )自动匹配了元素,也就是说,首先执行 paste("A", "C"),然

后执行 paste("B", "D"),最后,构成一个有两个元素的字符向量。

如果我们想要把结果放在同一个字符串中,可以设定collapse= 使两个元素再次连接:

paste(c("A", "B"), c("C", "D"),collapse =", ")

## [1] "A C, B D"

如果想让它们出现在两行中,可以设定 collapse 为\n(即换行符):

result <- paste(c("A", "B"), c("C", "D"), collapse ="\n") result

## [1] "A C\nB D"

新的字符向量 result 是一个两行的字符串,但是其文本表示仍然在同一行中。新一

行和我们设定的一样,通过\n 表示。为了查看创建的文本,需要调用 cat( ):

cat(result)

## A C

## B D

现在,这个两行的字符串已经以预期形式出现在控制台中。paste0( )也可以做到相

同的效果。