分享

R语言中paste函数的参数sep和collapse详解

 井里的怪兽 2018-11-20

R语言用于拼接字符串的函数主要有两个:

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

其中paste0函数式paste函数的缩减版本,少了一个参数sep。参数中的...表示的是想要拼接的对象,后面的参数表示拼接的方式。通常对于字符串拼接我们有三种需求:

  • 一堆单独的字符串拼接到一起;
  • 两个或者更多字符串对象根据元素对应关系拼接到一起;
  • 一个字符串连接在一起。

举点例子:

paste('hello','world','!')  #一堆单独的字符串拼接到一起
## [1] "hello world !"
paste(c('A','B','C'),c(1,2,3)) #两个或者更多字符串对象根据元素对应关系拼接到一起
## [1] "A 1" "B 2" "C 3"
paste(1:10) #一个字符串连接在一起
## [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

那么两个参数的用法是什么样的呢?

  • 当处理前两种需求的时候用到的参数是sep,即多个字符串之间的拼接;
  • 当处理第三种需求的时候用到的参数是collapse,即一个字符串拼接的时候用什么符号或者格式来连接;

举点例子:

paste('hello','world','!')  #一堆单独的字符串拼接到一起,如果想用‘_’连接起来
paste('hello','world','!',sep = '_')
## [1] "hello_world_!"
paste(c('A','B','C'),c(1,2,3)) #两个或者更多字符串对象根据元素对应关系拼接到一起,如果想用‘-’连接起来
paste(c('A','B','C'),c(1,2,3),sep = '-')
## [1] "A-1" "B-2" "C-3"
#此外需要注意的是如果传入的两个或多个对象的长度不一样,对应关系会发生变化,比如
paste(c('A','B','C','D','E'),c(1,2),sep = '-')
## [1] "A-1" "B-2" "C-1" "D-2" "E-1"
paste(1:10) #一个字符串连接在一起,这第三种需求与上面很大的不同在于上面两种需求传入的都是多个对象,而第三种需求在函数的第一个参数位置上只传入一个对象,如果需要用‘~’连接
paste(1:10, collapse = '~')
## [1] "1~2~3~4~5~6~7~8~9~10"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

对于缩减版本的paste0有这样的等式:

paste0(“a”, “b”) == paste(“a”, “b”, sep=”“)

个人觉得熟悉paste即可,毕竟paste功能更加丰富,用起来更加灵活。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多