在R Markdown中,我可以在R代码块中设置一个对象,然后在我的文档正文中具有该对象的值,如下所示:
```{r}
TMP<-"Blue"
TMP
```
The sky is `r TMP`
我编译的PDF文档中的输出如下所示:
TMP<-"Blue"
TMP
## [1] "Blue"
The sky is Blue
此功能非常有用。但是,我不想仅限于使用R代码。我希望能够使用其他语言在代码块中设置对象,然后以相同的方式在文本中调用它们的值。
RMarkdown + knitr很好地允许你用其他语言编写和编译这些代码块,但是我没有找到任何办法在我的文档中调用这些对象的值。这种格式在RMarkdown中或者来自LaTeX的\ Sexpr {}函数的方式。如果它更容易,我愿意使用不同的文档系统来实现这一目标。我见过像this这样的问题,但这根本没有用,因为我将使用的脚本比那样的小单行更长,更复杂。
这是一个完整的RMarkdown文档,详细说明了R的当前行为,以及Python等所需的(相同)行为。
title: "SAMPLE"
author: "me"
date: "September 21, 2015"
output:
pdf_document:
keep_tex: yes
---
```{r}
TMP<-"Blue"
TMP
```
You can insert the value of an object created with an R code chunk into text like this:
The sky is `r TMP`
```{r,engine='python'}
COLOR = "red"
print COLOR
```
You cannot do the same thing with Python, or other types of code:
The car is `python COLOR`
答案 0 :(得分:1)
使用reticulate来调用Python形式R并将结果返回给R对象,而不是试图更改或扩展内联代码定界符以解释多种语言。
如下所示修改.rmd文件。确保为要使用的python版本使用正确的路径。有关此rmd文件的注意事项是,所有内容都通过R进行评估。Python代码通过[{
levelid: 1,
levelname: "level1",
chapter: [{
chapternumber: 1,
chaptername: "chapter1",
content: "chapter1-content"
}, {
chapternumber: 2,
chaptername: "chapter2",
content: "chapter2-content"
}]
}]
进行评估,结果通过py_run_string
调用返回到R环境。
py_to_r
生成的PDF看起来像这样: