Сокращение длинного R-выхода в knitr

Я помню, что я видел крюк в knitr сокращать R выход. Но забыл, как выполнить эту задачу. Я был бы очень признателен, если бы кто-нибудь показал мне, как показать первые несколько строк и последние несколько строк R выход связан с ellipses (...), Спасибо

   \documentclass{article}
    \begin{document}

    << Test >>=
    1:1000
    @
    \end{document}

Я нашел эту ссылку, но, похоже, не работают для меня.

отредактированный

Решение @kohske превосходно и работает, если есть только один выход. Нужно больше обобщений для такого чанка.

<< label=Test, results = "hold" >>=
1:1000
args(lm)
@ 

1 ответ

Решение

Это то, что вы хотите?

\documentclass{article}
\begin{document}

<<include=FALSE>>=
library(knitr)
oh <- knit_hooks$get("output")
knit_hooks$set(output = function(x, options) {
  ret <- strsplit(x, "\n")[[1]]
  ret <- paste0(ret[1], "\n...\n", ret[length(ret)])
  oh(ret, options)
})
@


<< Test>>=
1:1000
@
\end{document}

введите описание изображения здесь

ОБНОВИТЬ

knit_hooks$set(output = function(x, options) {
  ret <- strsplit(x, "\n")[[1]]
  ret <- if (length(ret) > 2)
    paste0(ret[1], "\n...\n", ret[length(ret)])
  else
    ret
  oh(ret, options)
})
Другие вопросы по тегам