这是我在 Stack Overflow 上的第一篇文章,所以如果这是一个格式不正确或不可重现的问题,请原谅我。我尝试将以下自定义数据表打印函数('print.me')传递到 RMarkdown 中的 YAML 标头,以将 df_print 编织为 HTML:
print.me <- function(x) {
x <- x %>% kbl(digits=2, align= 'l', booktabs=T) %>%
kable_styling(fixed_thead = T, position ="float_right") %>%
kable_paper("striped", full_width = T, fixed_thead = T,
html_font = "Helvetica", font_size = 11) %>%
row_spec(0, color = "yellow", background = "#5b705f", font_size = 12) %>%
scroll_box(width = "700px", height = "300px")
return(x)
}
Run Code Online (Sandbox Code Playgroud)
此函数成功呈现了我在从 RMarkdown 打印 mtcar 时所希望的数据帧格式:
问题是我无法找到一种方法来成功地将“print.me”传递到 YAML 标头,以便“print.me”成为编织到 HTML 时渲染数据帧的默认方法。我在 YAML 标头中的代码如下所示:
df_print: !expr 'print.me'
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误消息:
错误:找不到对象“print.me” …
在 R Markdown 中将 R 代码块编织为 HTML 时,可以通过设置块选项(图形高度、显示消息/警告等)来更改某些视觉元素。我很好奇是否有一个块选项可以删除代码返回的框周围的灰色边框。例如,如果我运行以下命令:
```{r}
head(mtcars)
```
Run Code Online (Sandbox Code Playgroud)
代码显示在带有灰色边框的浅灰色背景上,返回显示在带有灰色边框的白色背景上。有没有办法删除代码、返回或两者周围的灰色边框?
感谢您的帮助。
我希望将 Bootstrap 导航栏(如下所示: https: //getbootstrap.com/docs/4.0/components/navbar/)添加到我正在创建的 R Markdown 模板中。
通过阅读,我了解了如何从另一个文件添加 HTML 元素并在 R Markdown 中调用它们。
但是,是否有办法在 Markdown 文件中包含 HTML 代码,这样导航栏仍然会被添加,但我只需要一个页面来显示结果?
目前情况:我正在编写一个 rMarkdown 文档,它的工作完全符合预期。当编织到 HTML 时,10 个绘图块中的每一个都会生成一个交互式绘图图表,并且它们工作得非常好。当编织为 PDF 或 DOCX 时,会显示每个代码块,但每个绘图不会(如预期),因为这些文件类型无法显示 HTML 内容。
目标:在编织到 HTML 时获取要渲染的绘图,但在编织到 PDF 或 DOCX 时让 ggplots 在其位置渲染(而不是在 HTML 下回显、评估或渲染),无需手动调整回显和/或评估每次针织运行中每个图的参数。
尝试过:
当前非首选选项:
保持原样,代码显示在所有三个输出中,但绘图仅显示在 HTML 输出中(PDF 和 DOCX 的报告不完整)。
为每个绘图块编写一个额外的 ggplot2 块,并将所有 echo 和 eval 设置为 true,从而为 HTML 输出中的 10 个变体中的每一个生成一个交互式绘图和一个静态绘图(总共 20 个绘图,非常重复)以及 PDF DOCX 输出回显并评估两个代码块(重复),但仅渲染 ggplot(大量不合适的未渲染绘图代码)。
为每个绘图块编写一个额外的 ggplot2 块,并手动调整每次 knit 运行的 echo 和 eval 参数(很容易错过某些内容并犯错误)。
需要:一个优雅的解决方案,可以在编写 HTML 时自动回显和评估代码块 A 并忽略代码块 B,同时在编写 PDF …
我想在 bookdown 中写的论文中包含我的导师的姓名、课程名称等。我特别希望这些信息位于不同的行中。到目前为止,我已经在 yaml 中尝试过:
---
title: "Term Paper Title"
author:
- "Bird"
- "Supervisor: Hummingbird"
- "Course: Ornithology"
- "University: XXX State University"
date: "Summer Semester: 2021"
site: bookdown::bookdown_site
output:
bookdown::pdf_book:
includes:
in_header: preamble.tex
documentclass: book
classoption: openany
bibliography: [book.bib, packages.bib]
biblio-style: apalike
link-citations: yes
mainfont: Times New Roman
fontsize: 12pt
geometry: "left=3cm, right=2cm, top=2.5cm, bottom=2.5cm"
linestretch: 1.5
toc-depth: 1
secnumdepth: 1
---
Run Code Online (Sandbox Code Playgroud)
结果如下:
我创建了一个 R Markdown 来检查一系列数据集中的错误(例如,给定列中是否有空格?如果有,则打印一条语句,说明存在 NA 以及哪些行具有 NA)。我已经设置 R Markdown 来输出bookdown::word_document2. 我有大约 100 个数据集,需要在其上运行相同的 R Markdown 并分别为每个数据集获取 Word 文档输出。
有没有办法在所有数据集上运行相同的 R Markdown 并为每个数据集获取一个新的 Word 文档(这样它们就不会被覆盖)?所有数据集都位于同一目录中。我知道每次编织文档时输出都会被覆盖;因此,我需要能够根据数据集/文件名保存每个word文档。
\n最小的例子
\n创建包含 3 个 .xlsx 文件的目录
\nlibrary(openxlsx)\n\nsetwd("~/Desktop")\ndir.create("data")\n\ndataset <-\n structure(\n list(\n name = c("Andrew", "Max", "Sylvia", NA, "1"),\n number = c(1, 2, 2, NA, NA),\n category = c("cool", "amazing",\n "wonderful", "okay", NA)\n ),\n class = "data.frame",\n row.names = c(NA,-5L)\n )\n\nwrite.xlsx(dataset, \'./data/test.xlsx\')\nwrite.xlsx(dataset, \'./data/dataset.xlsx\')\nwrite.xlsx(dataset, \'./data/another.xlsx\')\nRun Code Online (Sandbox Code Playgroud)\nRMarkdown
\n---\ntitle: Hello_World\nauthor: "Somebody"\noutput:\n bookdown::word_document2:\n fig_caption: …Run Code Online (Sandbox Code Playgroud) 使用 natbib 时,引用项之间的间距工作正常,但是使用 csl 文件时,不会产生适当的间距。
由于其他几个原因,我不想使用 natbib 但使用 csl
由于 \setlength\bibitemsep 或类似的不适用于 csl 。
font-family: Arial
mainfont: Arial
header-includes:
- \pagenumbering{gobble}
- \usepackage{caption}
- \usepackage{float}
- \captionsetup[figure]{font=footnotesize,format=hang,labelfont=bf,textfont=it,width=.95\textwidth}
output:
bookdown::pdf_document2:
includes:
text-align: justify
latex_engine: "xelatex"
number_sections: yes
fig_caption: yes
toc: false
geometry: "left=3cm,right=3cm,top=2.5cm,bottom=2.5cm"
fontsize: 12pt
bibliography: Microt.bib
csl: the-journal-of-cell-biology.csl
linestretch: 1.5
link-citations: yes
editor_options:
markdown:
wrap: sentence
Run Code Online (Sandbox Code Playgroud)
然后在 rmd 的末尾:
\```{=tex}
\newpage
\pagenumbering{gobble}
\```
# Literature {.unnumbered}
\singlespacing
Run Code Online (Sandbox Code Playgroud)
citation_package: natbib …
我使用 Quarto/RMarkdown 导出一个 PDF,其中包含一个代码块,该代码块可生成两个表(包括)。子帽。
如何增加下层子上限与上层表格的边距?
我的代码:
#| label: tbl-1985
#| tbl-cap: "*Was Wann Wo* im Jahr 1985"
#| tbl-subcap:
#| - "Auswertung nach Kategorien"
#| - "Besonderheiten"
#| layout-nrow: 2
#| fig-pos: 'H'
# table 1
df_table_1 %>%
knitr::kable(., caption = paste0("\\textit{Was Wann Wo} im Jahr ", year)) %>%
kableExtra::kable_styling(latex_options = "scale_down")
# table 2
df_table_2 %>%
knitr::kable(., caption = paste0("Besonderheiten im Jahr ", year)) %>%
kableExtra::column_spec(2, width = "12cm")
Run Code Online (Sandbox Code Playgroud)
我在尝试设置 rmarkdown 以在 VSCode 中工作时遇到问题。我已经尝试过Sys.setenv(RSTUDIO_PANDOC = "path"),但是如果我将其设置为 R Studio 成功使用的相同路径,如果我这样做,rmarkdown::pandoc_available()它仍然会返回[1] FALSE.
我还尝试在 VSCode settings.json 中将其设置为环境变量。再说一次,我可以在 R Studio 中毫无问题地编织。我在 StackOverflow 上查看了许多类似问题的答案,但到目前为止,没有一个对我有用。我运行的是 Windows 10。
编辑:
r$> Sys.getenv("RSTUDIO_PANDOC")
返回
[1] "C:/Program Files/RStudio/bin/quarto/bin/tools/pandoc.exe"
我尝试过跑步
Sys.setenv(RSTUDIO_PANDOC = "C:/Program Files/RStudio/bin/quarto/bin/tools/pandoc.exe")
我的 settings.json 文件包含这个
"terminal.integrated.env.windows": { "RSTUDIO_PANDOC":"C:/Program Files/RStudio/bin/quarto/bin/tools/pandoc.exe" }
Run Code Online (Sandbox Code Playgroud) 我有两个 RMarkdown 文件。main.Rmd这是渲染的主文件,example.Rmd它包含更长的示例并在其他地方使用(因此它位于自己的文档中)。
我想example.Rmd在文件中包含突出显示其 RMarkdown 代码的代码,但不需要执行main.Rmd代码,就好像我手动将所有代码设置并复制到块中一样。example.Rmdeval=FALSE
MWE 的一个例子是
main.Rmd
---
title: This is main.rmd
output: html_document
---
```{r}
# attempt that doesnt work
cat(readLines("example.Rmd"), sep = "\n")
```
Run Code Online (Sandbox Code Playgroud)
并在example.Rmd
---
title: This is example.rmd
output: html_document
---
```{r}
# code that is not executed but shown in main.Rmd
data <- ...
```
Run Code Online (Sandbox Code Playgroud)