在knitr中缩写长R输出

时间:2014-08-01 11:49:39

标签: r latex knitr sweave

我记得我在knitr中看到了一个缩写R输出的钩子。但忘记了如何完成这项任务。如果有人指导我如何显示与R相关联的ellipses (...)输出的前几行和最后几行,我将非常感激。感谢

   \documentclass{article}
    \begin{document}

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

我发现这个link,但似乎对我不起作用。

被修改

@kohske解决方案非常出色,如果只有一个输出就可以正常工作。需要对此类Chunk进行更多概括。

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

1 个答案:

答案 0 :(得分:3)

这是你想要的吗?

\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}

enter image description here

<强>更新

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)
})