Завершение вывода длинного текста в уценке R - PullRequest
0 голосов
/ 23 января 2019

Я делаю отчет в уценке 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 голосов
/ 24 января 2019

Возможно, это уже решает вашу проблему:

Существуют разные выходные крючки. Если вы немного изменили пример, который вы опубликовали, изменив обработчик ошибок вместо выходного, он работает:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...