Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Rmd内联输出中抑制冗长的可扩展表,同时保留在最终PDF中_R_R Markdown_Knitr - Fatal编程技术网

在Rmd内联输出中抑制冗长的可扩展表,同时保留在最终PDF中

在Rmd内联输出中抑制冗长的可扩展表,同时保留在最终PDF中,r,r-markdown,knitr,R,R Markdown,Knitr,我试图让R在内联Rmd输出中抑制使用kable&kableExtra创建的长表,同时将它们保留在最终的PDF中。我只想用几个块来实现这一点,所以我不想设置全局选项来关闭所有内联输出 我已经对这里列出的块选项进行了多次迭代:这里:但是没有找到正确的块选项,所以我不确定我是否在正确的位置查找,或者是否跳过了正确的设置 亚马尔: 代码: 如果您可以想象在编写代码时必须滚动50-100行这类内容,您会发现这是多么烦人和耗时。此函数检测到RMarkdown文档正在RStudio中进行内联处理,而不是通过编

我试图让R在内联Rmd输出中抑制使用kable&kableExtra创建的长表,同时将它们保留在最终的PDF中。我只想用几个块来实现这一点,所以我不想设置全局选项来关闭所有内联输出

我已经对这里列出的块选项进行了多次迭代:这里:但是没有找到正确的块选项,所以我不确定我是否在正确的位置查找,或者是否跳过了正确的设置

亚马尔:

代码:


如果您可以想象在编写代码时必须滚动50-100行这类内容,您会发现这是多么烦人和耗时。

此函数检测到RMarkdown文档正在RStudio中进行内联处理,而不是通过编织:

is_inline <- function() {
  is.null(knitr::opts_knit$get('rmarkdown.pandoc.to'))  
}
或者做另一个功能

hide_inline <- function(x) {
  if (is_inline())
    cat("[output hidden]")
  else
    x
}
这两种方法都有一个缺点,即需要对代码进行修改,如果
echo=TRUE
,代码就会显示出来。我不认为有任何区块选项等同于
hide\u inline
,但我可能错了

如果你真的很绝望,你可以使用
echo=2:3
或类似的方法来隐藏
If(!is_inline()){
}

\begin{table}[H]
\centering
\begin{tabular}{rl}
\toprule
A & B\\
\midrule
1 & Imagine a really long table\\
2 & With at least 50 rows or so\\
3 & Which get in the way in the inline output\\
4 & But I want in the final PDF\\
5 & Without influencing the other chunks\\
\bottomrule
\end{tabular}
\end{table}
is_inline <- function() {
  is.null(knitr::opts_knit$get('rmarkdown.pandoc.to'))  
}
if (!is_inline()) {
  kable(dat, booktabs=TRUE, format="latex", longtable=TRUE) %>%
  kable_styling(latex_options="HOLD_position")
}
hide_inline <- function(x) {
  if (is_inline())
    cat("[output hidden]")
  else
    x
}
kable(dat, booktabs=TRUE, format="latex", longtable=TRUE) %>%
  kable_styling(latex_options="HOLD_position") %>%
  hide_inline()