paste()和paste0()之间的区别

时间:2016-03-29 09:02:54

标签: r paste

作为R的新手,有人可以解释paste()paste0()之间的区别,我从一些帖子中了解到的是

paste0("a", "b") === paste("a", "b", sep="")

即使我尝试过这样的事情

a <- c("a","b","c")
b <- c("y","w","q")
paste(a,b,sep = "_")
**output**
"a_y" "b_w" "c_q"

使用paste0()

a <- c("a","b","c")
b <- c("y","w","q")
paste0(a,b,sep = "_")
**output**
"ay_" "bw_" "cq_"

只是paste()在元素之间使用了分隔符而paste0()在元素之后使用了分隔符吗?

3 个答案:

答案 0 :(得分:41)

正如in this blog by Tyler Rinker所说:

  

paste有3个参数。

     

paste (..., sep = " ", collapse = NULL) ...就是你的东西   想要粘贴在一起,sep和collapse是得到它的人   完成。我粘贴了三个基本内容:

     
      
  • 一堆单独的字符串。
  •   
  • 元素的2个或更多字符串粘贴元素。
  •   
  • 一根绳子一起擦过。
  •   
     

以下是每个示例,但没有正确的参数

     

paste("A", 1, "%")#一堆个别字符串。

     

paste(1:4, letters[1:4])#2或更多字符串粘贴元素   元件。

     

paste(1:10) #One字符串一起刷了。这是   每个的sep / collapse规则:

     
      
  • 一堆单独的字符串 - 你想要sep
  •   
  • 元素的2个或更多字符串粘贴元素。 - 你想要sep
  •   
  • 一根绳子一起擦过.- Smushin需要崩溃
  •   
     

paste0简称:paste(x, sep="")所以它让我们变得懒散   更有效率。

     

paste0("a", "b") == paste("a", "b", sep="") ## [1] TRUE

答案 1 :(得分:12)

简单来说,

paste()就像使用分离因子连接一样, 然而,

paste0()就像使用分离因子的附加函数一样。

在上面的讨论中添加更多参考资料,下面的尝试可能有助于避免混淆:

> paste("a","b")  #Here default separation factor is " " i.e. a space

[1] "a b"  

> paste0("a","b") #Here default separation factor is "" i.e a null

[1] "ab"

> paste("a","b",sep="-")

[1] "a-b"

> paste0("a","b",sep="-")

[1] "ab-"

> paste(1:4,"a")

[1] "1 a" "2 a" "3 a" "4 a"

> paste0(1:4,"a")

[1] "1a" "2a" "3a" "4a"

> paste(1:4,"a",sep="-")

[1] "1-a" "2-a" "3-a" "4-a"

> paste0(1:4,"a",sep="-")

[1] "1a-" "2a-" "3a-" "4a-"

答案 2 :(得分:6)

让我用简单的话说.. paste0会自动排除连接中的空格..

例如,我想创建一个训练和测试路径......这就是代码..

> Curr_date=format(Sys.Date(),"%d-%b-%y")

> currentTrainPath = paste("Train_",Curr_date,".RData")

> currentTrainPath

[1] "Train_ 11-Jun-16 .RData"

> Curr_date=format(Sys.Date(),"%d-%b-%y")

> currentTrainPath = paste0("Train_",Curr_date,".RData")

> currentTrainPath

[1] "Train_11-Jun-16.RData"