小编Yih*_*Xie的帖子

我可以在乳胶文档的标题中使用knitr内联表达式吗?

我想\Sexpr{}在\ begin {document}命令之后但在\ maketitle命令之前使用LaTeX文档标题中的Knitr/Sweave内联调用().内联R代码将从我在LaTeX中嵌入的R脚本中早期创建的R数据帧中提取一条或两条信息.

我有几个Knitr块创建了一个data.frame,我从中获取了我想要放入Title的信息.我尝试在LaTeX的\ begin {document}调用和\ title代码之间放置这些块,如下所示:

\documentclass
[LaTex Preamble]
\begin{document}
[%% Knitr chunks that initialize an R data-frame]
\title \Sexpr{--a snippet of R code that extracts an element from the data-frame --}
\maketitle
... (rest of the LaTeX document)
Run Code Online (Sandbox Code Playgroud)

我还尝试在\ begin {document}语句之前将Knitr块放在LaTeX代码的序言中.

但是在Knitr中似乎忽略了放在LaTeX中\ maketitle调用之前的代码(初始化除外),因此内联片段包含标题看起来像Latex的错误并且它会停止输出.

我在Knitr文档中找不到有关在LaTeX文档的标题中包含内嵌代码的任何信息.

有任何想法吗?


好的:感谢下面@ ben-bolker提示的解决方案.Ben在输出到RNW文件之前使用R块的格式(在2步Knitr过程中:latex - > rnw - > pdf).但我正在一步编译LaTeX文件,而不是从TeXShop内部(在Mac OSX上)转到RNW文件.我发现我可以让Ben的例子使用RNW分隔符(<< >> =)和一步编译.但我无法混合通常的LaTeX块分隔符(%% begin.rcode和%% end.rcode)和RNW内联语句钩子(\ Sexpr {}).无论我如何摆弄它,后者都无法奏效.最终我发现LaTeX的正确内联钩子是\\ rinline {}.

在Knitr文档中不太清楚这是LaTeX所需的格式,我发现它最终主要归功于Ben的例子.最好,彼得


更新2 ...然后是RTFM(在这种情况下是'备忘单'):http://cran.r-project.org/web/packages/knitr/vignettes/knitr-refcard.pdf

latex r knitr

11
推荐指数
1
解决办法
3024
查看次数

创建参数R降价文档?

我想迭代我的R markdown文件中的结果集列表.当我生成输出时,我想要包含一些文本,例如带有结果集名称的标题.

我发现一个hacky解决方案是直接在这样的文档中硬编码html输出

## All results

```{r loopResults, echo=FALSE, results='asis'}
results = list(result1 = data.frame(x=rnorm(3), y=rnorm(3)), result2=data.frame(x=rnorm(3), y=rnorm(3)))

for(res in names(results)) {
  cat(paste("<h3>Results for: ", res, "</h3>>"))

  plot(results[[res]]$x, results[[res]]$y)
}
Run Code Online (Sandbox Code Playgroud)

这似乎不是正确的做事方式,特别是因为我想在时间通过pandoc创建PDF文档,并且必须更改硬编码表达式.(我目前有便利功能,如h3(文本,类型)).

有没有更好的方法呢?

markdown r pandoc knitr

11
推荐指数
1
解决办法
2128
查看次数

Knitr xtable行颜色导致行标题单元格中的第二个表格变黑

亲爱的R xtable和knitr用户:我几天来一直在努力解决这个问题,我很惊讶没有一个人已经报道过类似的案例.非常感谢您的见解和帮助.

我使用xtable制作两个或更多表.表中的行交替着色.第一张表很好.但从第二个表(或更多)开始,最左边的标题单元格总是变黑.

不幸的是,这是非常可重复的.在第一张漂亮的桌子后,我总是得到完全相同的黑色标题.以下是重现它的代码:

\documentclass{article}
\usepackage{booktabs}
\usepackage{colortbl, xcolor}

\begin{document}
<<echo=TRUE,results='asis'>>=
employee <- c('John Doe','Peter Gynn','Jolie Hope')
salary <- c(21000, 23400, 26800)

mydata <- data.frame(employee, salary)
rws <- seq(1, (nrow(mydata)), by = 2)
col <- rep("\\rowcolor[gray]{0.90}", length(rws))
library(xtable)
print(xtable(mydata, caption="Test"), booktabs = TRUE, 
      include.rownames = FALSE, caption.placement = "top",
      sanitize.colnames.function = identity,
      add.to.row = list(pos = as.list(rws), command=col))

print(xtable(mydata, caption="Test"), booktabs = TRUE, 
      include.rownames = FALSE, caption.placement = "top",
      sanitize.colnames.function = identity,
      add.to.row = list(pos = as.list(rws), command=col))
@

\end{document}
Run Code Online (Sandbox Code Playgroud)

输出: …

r alternating xtable knitr

11
推荐指数
1
解决办法
2246
查看次数

使用knitr :: include_graphics函数控制数字的位置

我在我的*.Rmd文件中使用以下代码来生成以下输出:

```{r gb, echo=F, eval=T, results='asis', cache.rebuild=T, fig.cap='bla', out.width='0.7\\linewidth', fig.subcap=c('bla.', 'Using the \\textit{normalizeChIPToInput} function. THis method doesn not require to compute a enrichment ratio.')}
p1 <- file.path(FIGDIR, 'correlK27K9me3.png')
p2 <- file.path(FIGDIR, 'correlK27K9me3.png')
knitr::include_graphics(c(p1,p2))
```
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想垂直堆叠这两个图而不是并排显示它们而没有单独的调用include_graphics(这不适用于子标题)并且不必将它们放入单独的块中.这是否可以在不操纵乳胶代码的情况下实现?

更一般地说,是否有可能以某种方式指定上述方式中包含的绘图的布局,例如:'为我提供给include_graphics函数的4个图像给我一个2x2的网格?

r knitr r-markdown

11
推荐指数
1
解决办法
2150
查看次数

在bookdown首页之前插入pdf

我正在用Rmarkdown中的Bookdown撰写我的论文(我最终会将其导出为PDF格式).提交论文时,我需要在论文的第一页之前加入一些带有手写签名的扫描文档.

Bookdown在组合不同的Rmd文件方面令人惊叹,但我还没有设法在标题页之前包含PDF文档.

我试过这个:

bookdown::pdf_book: 
  includes:
    in_header: preamble.tex
    before_body: beforebody.tex
Run Code Online (Sandbox Code Playgroud)

在preamble.tex中:

\usepackage{pdfpages}
Run Code Online (Sandbox Code Playgroud)

在beforebody.tex中:

\includepdf[pages={5}, scale=1]{OfficialFrontpages.pdf}
\newpage
Run Code Online (Sandbox Code Playgroud)

但是,它首先创建Bookdown标题页,并仅在目录之前插入这些页面.有没有办法强制在最终PDF文档的第一页之前包含此文档?

将这些命令作为第一个.Rmd文件的行包含在内也不起作用:

![Caption](OfficialFrontpages.pdf) 
\raggedright 
\clearpage
Run Code Online (Sandbox Code Playgroud)

pdf latex r r-markdown bookdown

11
推荐指数
1
解决办法
817
查看次数

R包中的reg.finalizer()不会在R会话结束时执行

?reg.finalizerR中的文档:

除其他外,它提供了一种方法来编写代码,以便在R会话结束时运行而无需进行操作.Last.为了在包中使用,通常最好在命名空间中的对象上设置终结器:然后在会话结束时调用终结器,或者在会话期间完成命名空间后不久调用它.

似乎我可以reg.finalizer()在R会话结束时使用运行某些代码,但它对我不起作用.我在https://github.com/yihui/finalizer-test准备了一个最小的包,它基本上包含以下代码:

e = new.env()

reg.finalizer(e, function(e) {
  message('Bye!')
}, onexit = TRUE)
Run Code Online (Sandbox Code Playgroud)

如果我只是在交互式R会话中运行上面的代码并退出会话,我可以看到该消息Bye!,但是如果我安装上面的包(你可以使用devtools::install_github('yihui/finalizer-test')),在R会话中加载它,并退出R会话,我看不到消息.我想知道为什么在这种情况下不执行终结器.

FWIW,当我安装软件包时,我可以看到以下消息Bye!:

$ R CMD INSTALL .

* installing to library ‘/Users/yihui/R’
* installing *source* package ‘finalizer’ ...
** R
** preparing package for lazy loading
No man pages found in package  ‘finalizer’ 
** help
*** installing help indices
Bye!
** building package indices
** testing if installed package can be …
Run Code Online (Sandbox Code Playgroud)

r finalizer r-package

11
推荐指数
1
解决办法
269
查看次数

是否可以在Rmarkdown中定义信头标题?

R大师,

我正在努力为Rmarkdown设计一个信头模板,用于大规模的邮件合并项目.

理想情况下我需要的是以下内容: 在此输入图像描述

问题是如果标题可以在YAML中定义?代码可能如下所示:

---
output: 
  pdf_document:
    fig_caption: false

logo: logo.png
institute: UNIVERSITY OF CALIFORNIA
name: Prof. Jones
address: Mathematics Search Committee
         Department of Mathematics
         University of California
         Berkeley, California 12345
email: pj@uc.ac

latex_engine: pdflatex
fontfamily: mathpazo
fontsize: 11pt
# spacing: double
endnote: no
---
Run Code Online (Sandbox Code Playgroud)

latex r pandoc knitr r-markdown

11
推荐指数
1
解决办法
507
查看次数

Chrome CLI的参数 - 虚拟时间预算真正意味着什么?

我知道Chromium --virtual-time-budget 源代码中的论证文档,但我觉得我不理解它:

// If set the system waits the specified number of virtual milliseconds before
// deeming the page to be ready.  For determinism virtual time does not advance
// while there are pending network fetches (i.e no timers will fire). Once all
// network fetches have completed, timers fire and if the system runs out of
// virtual time is fastforwarded so the next timer fires immediately, until the
// specified virtual time budget is exhausted.
const …
Run Code Online (Sandbox Code Playgroud)

google-chrome chromium google-chrome-headless

11
推荐指数
1
解决办法
1333
查看次数

获取选定的Rhandsontable行

我在Shiny App中使用rhandsontable,我想知道在这种情况下如何使用Handsontable的getSelected()方法,因为我打算在data.frame上应用更改.谢谢!

r handsontable shiny

10
推荐指数
2
解决办法
4920
查看次数

评估rmarkdown图标题中的内联r代码

我正在使用RStudio和knitr将.Rmd编织为.docx

我想在图标题中包含内联代码,例如块选项中的以下内容:

fig.cap =" nrow(data)数据点图"

但是,knitr不会评估此代码,而只是打印未评估的命令.

有没有办法让knitr来评估图/表格标题中的r代码?

r knitr r-markdown

10
推荐指数
1
解决办法
1937
查看次数