gpt4 book ai didi

r - sprintf与paste的效率/比较0

转载 作者:行者123 更新时间:2023-12-04 11:23:22 26 4
gpt4 key购买 nike

我知道paste()paste0()在R中非常流行,但是当我想用一些变量构建一个长字符串时,我经常使用sprintf()

例如

x <- "a"
y <- 10
paste0("The value of x is ", x, " and y is ", y, ".")
sprintf("The value of x is %s and y is %d.", x, y)

我发现 sprintf()版本更容易编写,代码也不太笨拙。我找不到关于一个人比另一个人的好处的任何讨论。当我只需要 sprintf()的基本功能时,有什么理由不使用 paste吗? (如果我需要使用 collapsesep参数,那么显然 sprintf()不会这样做)。

我唯一能想到的是 sprintf()可能较慢,因为它检查类型是否匹配。

最佳答案

我可以想到使用paste0paste而不是sprintf的原因之一是,您无需考虑要传递的参数的类型。

在效率方面,sprintf似乎有优势,至少在您提供的示例和我的机器上:

library(microbenchmark)
microbenchmark(paste0("The value of x is ", x, " and y is ", y, "."),
sprintf("The value of x is %s and y is %d.", x, y))
# Unit: microseconds
# expr min lq mean median uq max neval
# paste0("The value of x is ", x, " and y is ", y, ".") 2.924 3.0185 3.45632 3.0950 3.1575 36.421 100
# sprintf("The value of x is %s and y is %d.", x, y) 1.328 1.4130 1.54794 1.4535 1.5430 7.513 100

关于r - sprintf与paste的效率/比较0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28259215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com