关于r:使函数根据rmarkdown输出格式输出不同的结果

Make a function output different results depending on rmarkdown output format

我创建了一个小函数,给定一个表格作为参数,输出一些 HTML,允许使用选项卡式界面显示该表格的不同视图。

问题是,这在渲染 HTML 文档时效果很好,但如果我想生成 PDF 就会中断。解决方案是让函数知道当前的 rmarkdown 输出格式,以使其输出正确的代码。像这样的东西:

1
2
3
4
function() {
    if (current_output_format=="html") output_something_in_html()
    if (current_output_format=="pdf") output_something_in_latex()
}

那么有没有办法在调用render()时确定当前呈现的是哪种输出格式?

提前感谢您的帮助。


如何捕获错误并以合理的方式处理它。所以像:

1
2
3
ans = try(do_default(), TRUE)
if(class(ans)=="try-error")
    ans = do_fall_back()

仍然不是最好的解决方案,但至少它是便携的。