代码之家  ›  专栏  ›  技术社区  ›  Frank

如何在R中打印到stderr?

  •  45
  • Frank  · 技术社区  · 15 年前

    你怎么打印 stderr 在里面 R ?

    这对编写脚本尤其有用 Rscript .

    4 回复  |  直到 6 年前
        1
  •  50
  •   Frank    15 年前

    实际上,以下内容对我很有用:

    write("prints to stderr", stderr())
    
    write("prints to stdout", stdout())
    
        2
  •  10
  •   arielf    10 年前

    这里有一个更灵活的版本,可以在rscript中调试/verbose。不仅打印到 stderr 正如您所要求的,但是它也允许您传递变量数量的参数、类型等,比如 printf 做。

    v <- function(...) cat(sprintf(...), sep='', file=stderr())
    

    现在你可以做如下的事情:

    v("name: %s  age: %d\n", name, age)
    

    等。

        3
  •  7
  •   Galwegian    15 年前

    可以配置打印吗 打印到stderr的函数?

    From Ripley himself :

    不,但标准输出的位置是 由sink()控制,因此您可以 达到同样的效果。内部R 不知道输出来自什么 print()(不只是一个 函数,但有数百种方法)。

        4
  •  0
  •   De Novo    6 年前
    message('for writing diagnostic info to standard error')
    

    message用于生成__simple__诊断消息,这些消息既不是警告也不是错误,但仍然表示为条件。与警告和错误不同,最后的换行符被视为消息的一部分,并且是可选的。默认处理程序将消息发送到stderr()连接。