块执行后删除变量
Remove variable after chunk is executed
在 Rmarkdown 中,当我执行一些代码时,我创建的所有变量最终都在整个笔记本的公共命名空间中,其他块可以访问它们。然而,我经常创建临时变量,这些临时变量在块结束后并不需要持久存在。它们弄乱了我的变量列表、我的自动完成下拉列表,并且通常会导致混乱和细微的错误(例如,如果我忘记初始化前一个块使用的变量)。
例如:
Calculate the area of a circle:
```{r}
r = 1.23
pi = 3.14
temp = 1.23^2
area = pi * temp
```
如果我只希望 r
和 area
在 运行 之后继续存在,我该如何 "mark" pi
和 temp
块完成后被清除?
注意 pi 是 R 中的内置常量,您无需声明自己的近似值。
一个好的解决方案是将每个块的内容包装在一个函数中。在这种情况下,您的块将如下所示:
r <- 1.23
circle_area <- function(x) {
pi*(r^2)
}
area <- circle_area()
如果circle_area
persist 函数也是一个问题,建议使用rm()
是正确的。在那种情况下,我会说如果你的块足够复杂,这意味着你只需要担心每个块删除一个名称。
在 Rmarkdown 中,当我执行一些代码时,我创建的所有变量最终都在整个笔记本的公共命名空间中,其他块可以访问它们。然而,我经常创建临时变量,这些临时变量在块结束后并不需要持久存在。它们弄乱了我的变量列表、我的自动完成下拉列表,并且通常会导致混乱和细微的错误(例如,如果我忘记初始化前一个块使用的变量)。
例如:
Calculate the area of a circle:
```{r}
r = 1.23
pi = 3.14
temp = 1.23^2
area = pi * temp
```
如果我只希望 r
和 area
在 运行 之后继续存在,我该如何 "mark" pi
和 temp
块完成后被清除?
注意 pi 是 R 中的内置常量,您无需声明自己的近似值。
一个好的解决方案是将每个块的内容包装在一个函数中。在这种情况下,您的块将如下所示:
r <- 1.23
circle_area <- function(x) {
pi*(r^2)
}
area <- circle_area()
如果circle_area
persist 函数也是一个问题,建议使用rm()
是正确的。在那种情况下,我会说如果你的块足够复杂,这意味着你只需要担心每个块删除一个名称。