R markdown:从代码块访问变量(变量范围)

时间:2012-06-05 18:06:47

标签: r knitr r-markdown

在R markdown(knitr包)中,我可以访问在代码块中计算的文档正文中的变量吗?

3 个答案:

答案 0 :(得分:58)

是。您可以简单地调用任何先前评估的内联变量。

e.g。如果您之前在data.frame

的块中创建了df <- data.frame(x=1:10)
`r max(df$x)`

应该产生

10

答案 1 :(得分:4)

我想补充一点,除了R之外,其他语言的情况并非如此。我知道这个问题已经解决并且关于R,但也许其他人认为这很有用:

  

除了engine ='R'(默认),所有块都在不同的会话中执行,因此无法直接共享变量。如果我们想要使用在先前块中创建的对象,我们通常必须将它们写入文件(作为副作用)。对于bash引擎,我们可以使用Sys.setenv()将变量从R导出到bash(示例)。另一种方法是使用(实验性)runr包。

Source

R中的例子:

x = 4

print(x)

## [1] 4

Python示例2a):

x=1
print(x)

## 1

Python示例2b):

print(x)

## Traceback (most recent call last):
##   File "<string>", line 1, in <module>
## NameError: name 'x' is not defined

仅供参考。

答案 2 :(得分:1)

您可以访问之前创建的变量

`r variable`

但是如果变量是数字并且你想要添加到pdf文档,你应该在字符串中转换变量

`r toString(variable)`