c()函数:将括号中的元素连接起来,并不创建向量
paste()函数:连接括号中的元素
例如
c(1, 2:4),结果为1 2 3 4
paste(1, 2:4),结果为“1 2” “1 3” “1 4”
c(2, "and"),结果为“2” “and”
paste(2, "and"),结果为“2 and”
补充:R语言中paste函数的参数sep和collapse详解
R语言用于拼接字符串的函数主要有两个:
paste (..., sep = " ", collapse = NULL) paste0(..., collapse = NULL)
其中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"
那么两个参数的用法是什么样的呢?
当处理前两种需求的时候用到的参数是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"
对于缩减版本的paste0有这样的等式:
paste0(“a”, “b”) == paste(“a”, “b”, sep=”“)
个人觉得熟悉paste即可,毕竟paste功能更加丰富,用起来更加灵活。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。