В R markdown (пакет knitr) могу ли я получить доступ к переменной внутри тела документа, которая была рассчитана в куске кода?
R markdown: доступ к переменной из блока кода (область переменной)
Ответ 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)`