Удалить переменную после выполнения чанка - PullRequest
0 голосов
/ 08 ноября 2019

В Rmarkdown, когда я выполняю некоторый код, все созданные мной переменные попадают в общее пространство имен всей записной книжки, где другие куски могут получить к ним доступ. Тем не менее, я часто создаю временные переменные, которые на самом деле не должны сохраняться после окончания чанка. Они загромождают мой список переменных, мой выпадающий список автозаполнения и обычно вызывают путаницу и незначительные ошибки (например, если я забуду инициализировать переменную, которая использовалась предыдущим чанком).

Например:

Calculate the area of a circle:
```{r}
r = 1.23

pi = 3.14  
temp = 1.23^2

area = pi * temp
```

Если я хочу, чтобы r и area сохранялись только после выполнения этого, как я могу "пометить" pi и temp, которые будут очищены после завершения чанка?

1 Ответ

1 голос
/ 09 ноября 2019

Заметьте, что pi - это встроенная константа в R, вам не нужно объявлять собственное приближение.

Хорошее решение - обернуть содержимое каждого блока в функцию. В этом случае ваш чанк будет выглядеть так:

r <- 1.23
circle_area <- function(x) {
pi*(r^2)
}
area <- circle_area()

Если наличие функции circle_area persist также является проблемой, совет по использованию rm() правильный. В этом случае я бы сказал, что если ваши чанки достаточно сложны, это означает, что вам нужно беспокоиться только об удалении одного имени на чанк.

...