相关疑难解决方法(0)

如何将R Markdown转换为PDF?

我之前已经问过将R Markdown转换为HTML命令.

将R Markdown文件转换为PDF文档的好方法是什么?

一个好的解决方案将尽可能多地保留内容(例如,图像,方程式,html表等).解决方案需要能够从命令行运行.一个好的解决方案也是跨平台的,理想情况下最小化依赖关系,以便更容易共享makefile等等.

具体来说,有很多选择:

  • 是否将RMD转换为MD转换为HTML转换为PDF; 或RMD到MD到PDF; 或RMD到PDF
  • 如果markdown在R中使用包,则指定哪些选项
  • 是否使用pandoc,R内置的包或其他东西

这是一个示例rmd文件,可能会对任何提议的解决方案提供合理的测试.它被用作这篇博客文章的基础.

pandoc knitr r-markdown

125
推荐指数
5
解决办法
9万
查看次数

R Markdown,Knitr,Pandoc和Bookdown之间的关系

R Markdown,Knitr,Pandoc和Bookdown的功能之间有什么关系?

具体来说,在将标记文档与嵌入式R代码(例如.Rnw或者.Rmd)转换为最终输出(例如.pdf.html)时,这些包之间的"分工"是什么?如果Knitr用于处理RMarkdown,那么这个rmarkdown包做了什么以及它与它有何不同markdown package

r pandoc knitr r-markdown bookdown

72
推荐指数
1
解决办法
1万
查看次数

57
推荐指数
2
解决办法
9946
查看次数

差异:RStudio中的"编译PDF"按钮与knit()和knit2pdf()

TL; DR

在RStudio 中使用knit()/ knit2pdf()代替"编译PDF" 1按钮有什么(可能不需要的)副作用?

动机

大多数用户knitr似乎都在RStudio中编写文档,并使用"编译PDF"/"编织HTML"按钮编译文档.这大部分时间都可以顺利运行,但每隔一段时间就有一些使用编译按钮无法实现的特殊要求.在这些情况下,解决方案通常是直接调用knit()/ knit2pdf()/ rmarkdown::render()(或类似函数).

一些例子:

使用knit2pdf()而不是"编译PDF"按钮通常提供这种问题的简单解决方案.然而,这是有代价的:"编译PDF" 在一个单独的过程和环境中处理文档有根本区别,而knit2pdf()朋友则不然.

这具有影响,问题在于并非所有这些影响都是显而易见的.knit()使用全局环境中的对象的事实为例(而"编译PDF"没有)作为示例.在上述第二个例子的情况下,这可能是显而易见的,并且是期望的行为,但是当用于克服例如示例1和3中的问题时,这是意想不到的结果knit().

此外,还有更微妙的差异:

问题及其目标

每当我读/写使用的建议knit2pdf()而不是"编译PDF"时,我认为"正确,但用户应该理解后果......".

因此,这里的问题是:

在RStudio 中使用knit()/ knit2pdf()代替"编译PDF"按钮有什么(可能不需要的)副作用?

如果对这个问题有一个全面的(社区维基?)答案,可以将其与未来的建议联系起来knit2pdf().

相关问题

这个问题有很多相关的问题.然而,他们要么只提出代码(或多或少)重现RStudio按钮的行为,要么他们解释"基本上"发生了什么,而没有提到可能的陷阱.其他人看起来像是非常相似的问题,但结果却是一个(非常)特殊情况.一些例子:

r rstudio knitr

55
推荐指数
1
解决办法
2822
查看次数

如何在命令行中复制Knit HTML?

我知道这个问题类似于一个.但我无法在那里得到解决方案,所以再次在这里发布.

我希望通过单击"编织HTML"但通过命令获得与我得到的完全相同的输出.我尝试使用knit2html但它与格式混淆并且不包括标题,kable不起作用等.

例:

这是我的test.Rmd文件,

---
title: "test"
output: html_document
---

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.

When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

```{r} …
Run Code Online (Sandbox Code Playgroud)

markdown r rstudio knitr r-markdown

17
推荐指数
1
解决办法
7469
查看次数

在knitr chunk评估中替换"print"函数

我想将"pander"功能设置为编译knitr rmarkdown文档时的替代"打印"功能.像这样(在R中运行的代码示例):

require(pander)
print <- function(...) pander(..., style = "rmarkdown") # makes sure that everyhing that everyprint will pass through pander
summary(cars)
Run Code Online (Sandbox Code Playgroud)

这将导致:

> summary(cars)

----------------------------------
&nbsp;    speed          dist     
------ ------------ --------------
 ****  Min.  : 4.0   Min.  : 2.00 

 ****  1st Qu.:12.0 1st Qu.: 26.00

 ****  Median :15.0 Median : 36.00

 ****   Mean :15.4   Mean : 42.98 

 ****  3rd Qu.:19.0 3rd Qu.: 56.00

 ****  Max.  :25.0  Max.  :120.00 
----------------------------------
Run Code Online (Sandbox Code Playgroud)

这样,我将使所有表格格式化,而不是手动需要在整个文档中写"pander"(想象我必须在文档中写"摘要(汽车)20次,更改"打印"将保存我写pander(摘要(汽车))).

那可能吗?(还是有一种我不知道的更聪明的方式?)

谢谢.

更新:.rmd文件的示例:

TEST
====

```{r}

require(pander)
print <- function(...) …
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown

9
推荐指数
2
解决办法
1564
查看次数

如何以独立于操作系统的方式从R打开本地html文件?

如何以独立于操作系统的方式从R打开本地html文件?

出于演示目的,假设文件已被调用test.html并且位于工作目录中.

初步想法

  • system('gnome-open test.html')
    • 这适用于Ubuntu
  • browseURL(paste('file://', getwd(),'test.html', sep='/'))
    • 这适用于Ubuntu,但感觉有点像黑客,我不确定它是否适用于Windows.

r

6
推荐指数
2
解决办法
5464
查看次数

"Knit HTML"在Rstudio 0.98中做了什么?

我试图找出RStudio在按下RStudio版本0.98.1091中的"编织HTML"按钮时使用的命令和默认选项,因为当我knit()从控制台运行该函数时,我得到一个稍微不同的中间降价文件.

具体来说,当我对R markdown文件使用以下标题时:

---
title: "Report Title"
author: Daddy the Runner
date:  "`r format(Sys.time(), '%A, %B %d, %Y')`"
output: 
  html_document:
    keep_md: true
---
Run Code Online (Sandbox Code Playgroud)

按下"编织HTML"按钮时,我得到以下markdown文件:

# Report Title
Daddy the Runner  
`r format(Sys.time(), '%A, %B %d, %Y')`
Run Code Online (Sandbox Code Playgroud)

当我执行以下命令:时knit("myReport.Rmd"),我得到以下markdown文件:

---
title: "Report Title"
author: Daddy the Runner
date:  "Saturday, January 10, 2015"
output: 
  html_document:
    keep_md: true
---
Run Code Online (Sandbox Code Playgroud)

显然,RStudio按钮正在使用其他一些选项生成中间降价文件,但我无法在RStudio文档中找到有关它的任何信息.

关键问题是日期线.出于某种原因,RStudio在制作markdown文件时不会在标题中执行内联r块.(但是,它会在生成最终HTML之前执行.)然而,knit()函数调用会在生成markdown文件时执行内联块.

我在两个降价文件中注意到的唯一其他差异与图的生成有关.这两种方法生成不同大小的图形(命令行:504 x 504)与(按钮:672 x 480)并将它们放在不同的目录中.

在Rstudio 0.96的R Markdown文件中按"Knit HTML"时,我尝试了这个命令的运行方式.问题是插入一个Sys.sleep(30)电话,但没有提供任何关于RStudio用来编织文档的信息.它确实暂停了R Markdown控制台窗口中的输出,这是不必要的,因为RStudio始终保留所有输出.我在输出中没有看到的是RStudio发出的命令.

任何洞察这些差异的性质将不胜感激.虽然我喜欢使用IDE环境和它们提供的便利,但我真的很想了解它们正在做什么,这样我就能更好地预测它们的行为.

markdown r rstudio knitr r-markdown

6
推荐指数
1
解决办法
1368
查看次数

标签 统计

knitr ×7

r ×7

r-markdown ×5

rstudio ×3

markdown ×2

pandoc ×2

bookdown ×1

sweave ×1