【问题标题】:Difference between paste() and paste0()paste() 和 paste0() 的区别
【发布时间】:2016-07-16 17:49:48
【问题描述】:

作为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()在元素之后使用分隔符?

【问题讨论】:

  • paste0 没有 sep 参数。试试paste0(a,b,blabla = "_")
  • 来自?pastepaste0(..., collapse) 等价于 paste(..., sep = "", collapse),效率稍高。
  • 如果您想使用分隔符,请使用 paste 而不是 paste0。使用paste0 的全部目的是为了预先定义分隔符。这是一个经典的 XY 问题。
  • trinkerrstuff.wordpress.com/2013/09/15/…我在博客上写过这个主题
  • alos,paste0 不会被expression 正确解释(尝试plot(0:1, 0:1, main=expression(paste(delta, "=3"))) 然后plot(0:1, 0:1, main=expression(paste0(delta, "=3")))

标签: r paste


【解决方案1】:

正如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) #一串串在一起。这是 每个的 sep/collapse 规则:

  • 一堆单独的字符串——你想要sep
  • 为元素粘贴了 2 个或更多字符串。 – 你想要 sep
  • 一串串在一起。- Smushin 需要折叠

paste0 是:paste(x, sep="") 的缩写,所以它可以让我们更懒惰 并且更有效率。

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

【讨论】:

  • @deepesh 这不是他的博客。请在到期时给予信用。这是 Tyler Rinkers 的博客,他在 cmets 中链接了它。
【解决方案2】:

简单来说..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"

【讨论】:

    【解决方案3】:

    简单来说,

    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-"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 2019-02-07
      • 1970-01-01
      相关资源
      最近更新 更多