R语言中字符串的拼接操作

在R语言中 paste 是一个很有用的字符串处理函数,可以连接不同类型的变量及常量。

函数paste的一般使用格式为:

paste(..., sep = " ", collapse = NULL)
  • 1
  • 1

其中…表示一个或多个R可以被转化为字符型的对象;参数sep表示分隔符,默认为空格;参数collapse可选,如果不指定值,那么函数paste的返回值是自变量之间通过sep指定的分隔符连接后得到的一个字符型向量;如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间通过collapse的值分隔。下面用具体的例子说明各参数的作用:


paste函数把它的自变量连成一个字符串,中间用空格分开,如

> paste("Hello","world")
  • 1
  • 1

返回由空格连接的字符串。

[1] "Hello world"
  • 1
  • 1

连接的自变量可以是向量,这时各对应元素连接起来,长度不相同时较短的向量被重复使用。如

> paste("A", 1:6, sep = "")
  • 1
  • 1

注意这里返回的是由多个值组成的向量。

[1] "A1" "A2" "A3" "A4" "A5" "A6"
  • 1
  • 1

如果希望将一个向量中所有字符连接在一起且中间用逗号分隔,使用paste(x,collapse)即可,结果只是返回一个元素。或者可以使用函数toString来实现(但是toString函数本来就是利用paste来实现的,所以最好还是使用paste)。

> paste(letters[1:6],collapse=",")
  • 1
  • 1

这里就把本来应该成为一个向量的连接成了一个字符串(也就是多个元素的连接)

[1] "a,b,c,d,e,f"
  • 1
  • 1

同时使用了参数seq与collapse。

> paste("A", 1:6, sep = "",collapse=",")
  • 1
  • 1

合理利用这两个函数组合出自己想要的效果。

[1] "A1,A2,A3,A4,A5,A6"
  • 1
  • 1

如果只是希望向量x中每一个元素和特定的字符(如下划线_)连接,使用paste(x,seq=)即可,如

> paste(letters[1:4],seq='_')
  • 1
  • 1
[1] "a _" "b _" "c _" "d _"
  • 1
  • 1

以上。