访问 .rmd 文件的名称并在 R 中使用

Access name of .rmd file and use in R

我正在编写一个名为 MyFile.rmd 的降价文件。 如何在编织过程中访问字符串 MyFile 并将其用于:

导致...

...这是不正确的,因为我编织的文件的名称不同。

> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)

locale:
[1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] digest_0.6.8    htmltools_0.2.6 rmarkdown_0.5.1 tools_3.1.2     yaml_2.1.13

您可以使用 yaml 库,如下所示:

library(yaml)

# Read in the lines of your file
lines <- readLines("MyFile.rmd")
# Find the header portion contained between the --- lines. 
header_line_nums <- which(lines == "---") + c(1, -1)
# Create a string of just that header portion
header <- paste(lines[seq(header_line_nums[1], 
                          header_line_nums[2])], 
                collapse = "\n")
# parse it as yaml, which returns a list of property values
yaml.load(header)

如果保存 yaml.load 返回的列表,则可以根据需要在各种块中使用它。要获得标题,您可以这样做:

properties <- yaml.load(header)
properties$title

rmarkdown::metadata 为您提供 R Markdown 的元数据列表,例如rmarkdown::metadata$title 将是您文档的标题。一个例子:

---
title: "Beamer Presentation Title"
author: "My Name"
date: "10\. Mai 2015"
output: beamer_presentation
---

## Slide 1

Print the title in a code chunk.

```{r}
rmarkdown::metadata$title
```

## Slide 2

The title of the document is `r rmarkdown::metadata$title`.

要获取输入文档的文件名,请使用knitr::current_input()

简单总结一辉的回答:

    ---
    title: "`r knitr::current_input()`"
    author: "My Name"
    date: "10. Mai 2015"
    output: beamer_presentation
    ---

    ## Slide 1

    ```{r}

    knitr::current_input()

    ```

哪种针织品最适合。