如何在R中做printf?

我正在寻找如何做printf in r,ie我想input:

printf("hello %d\n", 56 ) 

并获得与input相同的输出:

 print(sprintf("hello %d\n", 56 ) 

我读过以下链接:

  • 在R中用print()打印换行符
  • 用R打印信息有什么更漂亮的方法?

…所以我知道我可以使用cat("hello", 56) ,这可能是我会做的,但只是想知道是否有一些快捷的方式来写print(sprintf(...))

对不起,如果这个问题是重复的(我不知道)。 search'printf r'非常困难,因为它返回的结果是php,c,…

 printf <- function(...) invisible(print(sprintf(...))) 

外部invisible呼叫可能是不必要的,我不是100%清楚如何工作。

我的解决scheme

 > printf <- function(...) cat(sprintf(...)) > printf("hello %d\n", 56) hello 56 

由Zack和mnel给出的答案打印回车符号作为文字。 不爽。

 > printf <- function(...) invisible(print(sprintf(...))) > printf("hello %d\n", 56) [1] "hello 56\n" > > printf <- function(...)print(sprintf(...)) > printf("hello %d\n", 56) [1] "hello 56\n" 

如果你想要一个打印的函数(sprintf(…)),定义一个函数来做到这一点。

 printf <- function(...)print(sprintf(...)) printf("hello %d\n", 56) ## [1] "hello 56\n" d <- printf("hello %d\n", 56) ## [1] "hello 56\n" d ## [1] "hello 56\n" 

我这样做:

 printf = function(s, ...) cat(paste0(sprintf(s, ...)), '\n')