【问题标题】:What is the difference between paste/paste0 and str_c?paste/paste0 和 str_c 有什么区别?
【发布时间】:2018-06-12 13:52:10
【问题描述】:

paste/paste0str_c 将单个向量组合成一个字符串、多个字符串组合成一个字符串或多个向量组合成一个字符串,我似乎没有看到区别。

当我写这个问题时,我发现了这个:https://www.rdocumentation.org/packages/stringr/versions/1.3.1/topics/str_c。来自richie@datacamp.com 的社区示例说不同之处在于str_c 将空白视为空白(而不是NA)并更适当地回收。还有其他区别吗?

【问题讨论】:

  • 一个区别是str_c更快。
  • 虽然速度差异似乎几乎可以忽略不计。对 paste0str_c 与输入 letters, letters 进行基准测试,时间差约为 30%,但在我的计算机上,这 30% 是 2.1 微秒,即 0.0000021 秒。这将是一个奇怪的代码,paste 是瓶颈......
  • @user5249203,我知道pastepaste0 之间的区别,我想弄清楚它们与str_c 的区别

标签: r stringr


【解决方案1】:

paste0(..., collapse = NULL)paste(..., sep = "", collapse = NULL)的包装,这意味着没有分隔符。换句话说,paste0() 不能应用某种分隔符,而 paste() 确实有该选项,而单个空格是默认值。

str_c(..., sep = "", collapse = NULL) 等同于paste(),这意味着您可以选择自定义所需的分隔符。不同之处在于str_c() 默认没有分隔符,所以它的行为就像默认的paste0()

Paste()paste0() 都是来自基本包的函数,而str_c() 来自 stringr 包。

我没有对其进行测试/微基准测试,但根据我的经验,我同意 Ryan str_c() 通常更快。

【讨论】:

  • 我不能同意你的说法,str_c 比 paste0 快。
猜你喜欢
  • 2016-07-16
  • 1970-01-01
  • 2012-09-28
  • 2010-10-02
  • 2011-12-12
  • 2010-09-16
  • 2012-03-14
  • 2012-02-06
  • 2011-02-25
相关资源
最近更新 更多