在R中使用带有向量而不是可变数量的参数的sprintf

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在R中使用带有向量而不是可变数量的参数的sprintf相关的知识,希望对你有一定的参考价值。

我想在R中使用带有可变数量参数的sprintf函数。我可以将这些参数捆绑在一个字符向量或列表中,以避免将这些参数单独提供给sprintf吗?

一个例子将澄清:

base_string = "(1) %s, (2) %s, (3) %s"
sprintf(base_string, "foo", "bar", "baz") # this works
sprintf(base_string, c("foo", "bar", "baz")) # this doesn't work

在Python中我可以完成这个

base_string = "(1) %s, (2) %s, (3) %s"
base_string % ("foo", "bar", "baz")
答案

我们可以使用do.call

do.call(sprintf, c(fmt = base_string, as.list(v1)))

data

v1 <- c("foo", "bar", "baz")

以上是关于在R中使用带有向量而不是可变数量的参数的sprintf的主要内容,如果未能解决你的问题,请参考以下文章

C语言基础:可变参数

如何在r中打印可变数量的参数?

使用带有可变参数字符串的函数

如何使用可变参数模板参数保存可变数量的参数?

如何制作可变参数宏(可变数量的参数)

可变数量的参数函数运行时错误