访问 .rmd 文件的名称并在 R 中使用
Access name of .rmd file and use in R
我正在编写一个名为 MyFile.rmd
的降价文件。
如何在编织过程中访问字符串 MyFile
并将其用于:
- 在 YAML 的标题部分使用 header?
在后续的 R 块中使用?
---
title: "`r rmarkdown::metadata$title`"
author: "My Name"
date: "10. Mai 2015"
output: beamer_presentation
---
## Slide 1
```{r}
rmarkdown::metadata$title
```
导致...
...这是不正确的,因为我编织的文件的名称不同。
> 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()
```
哪种针织品最适合。
我正在编写一个名为 MyFile.rmd
的降价文件。
如何在编织过程中访问字符串 MyFile
并将其用于:
- 在 YAML 的标题部分使用 header?
在后续的 R 块中使用?
--- title: "`r rmarkdown::metadata$title`" author: "My Name" date: "10. Mai 2015" output: beamer_presentation --- ## Slide 1 ```{r} rmarkdown::metadata$title ```
导致...
...这是不正确的,因为我编织的文件的名称不同。
> 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()
```
哪种针织品最适合。