将长文本输出以R markdown换行

时间:2019-01-23 17:49:10

标签: r-markdown

我正在用R降价做报告,并正在执行给我一个错误的代码。我想在报告中显示此错误,因此我设置了error=TRUE,以便无论如何都可以编织文档。

但是,在编织文档时,错误不能单行显示,也不会分成几行。结果是我看不到所需的错误。

我为解决此问题所做的事情:

tidy.opts=list(width.cutoff=60),tidy=TRUE

https://github.com/yihui/knitr-examples/blob/master/077-wrap-output.Rmd

我用来获取错误的方法:B<-solve(A,b) 实际错误:

Error in solve.default(A, b) : system is computationally singular: reciprocal condition number = 7.13971e-17

1 个答案:

答案 0 :(得分:1)

也许这已经解决了您的问题:

有不同的输出挂钩。如果您通过更改错误钩子而不是输出钩子来更改您发布的示例,它将起作用:

error_hook <- knitr::knit_hooks$get("error")
knitr::knit_hooks$set(error = function(x, options) {
  if (!is.null(n <- options$linewidth)) {
    x = knitr:::split_lines(x)
    if (any(nchar(x) > n)) x = strwrap(x, width = n)
    x = paste(x, collapse = '\n')
  }
  error_hook(x, options)
})

MWE:

---
title: "example"
date: "22 January 2019"
output: pdf_document
---

```{r}
error_hook <- knitr::knit_hooks$get("error")
knitr::knit_hooks$set(error = function(x, options) {
  if (!is.null(n <- options$linewidth)) {
    x = knitr:::split_lines(x)
    if (any(nchar(x) > n)) x = strwrap(x, width = n)
    x = paste(x, collapse = '\n')
  }
  error_hook(x, options)
})
```

```{r, linewidth = 10, error = T}
print(iDoNotExist)
```

enter image description here