Подтвердить что ты не робот

R markdown: доступ к переменной из блока кода (область переменной)

В R markdown (пакет knitr) могу ли я получить доступ к переменной внутри тела документа, которая была рассчитана в куске кода?

4b9b3361

Ответ 1

Да. Вы можете просто вызвать любую ранее оцененную переменную inline.

например. Если вы ранее создали data.frame в куске с df <- data.frame(x=1:10)

`r max(df$x)`

Должна вырабатывать

10

Ответ 2

Я хотел бы добавить, что это не относится к другим языкам, кроме R. Я знаю, что вопрос решен и о R, но, возможно, кто-то считает это полезным:

За исключением engine = 'R' (по умолчанию), все куски выполняются в отдельных сеансах, поэтому переменные не могут быть напрямую разделены. Если мы хотим использовать объекты, созданные в предыдущих кусках, мы обычно должны записывать их в файлы (в качестве побочных эффектов). Для механизма bash мы можем использовать Sys.setenv() для экспорта переменных из R в bash (пример). Другой подход - использовать (экспериментальный) пакет runr.

Источник

Пример в R:

x = 4

print(x)

## [1] 4

Пример Python 2a):

x=1
print(x)

## 1

Пример 2b на Python:

print(x)

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

Просто FYI.

Ответ 3

Вы можете получить доступ к переменной, ранее созданной, поэтому

`r variable`

Но если переменная является числовой и вы хотите добавить в документ pdf, вам нужно преобразовать переменную в строку, чтобы

`r toString(variable)`