Есть ли способ урезать knitr прямо из вашей рабочей области с помощью RStudio?
Интересно, могу ли я использовать knitr
markdown, чтобы просто создать отчет "на лету" с объектами, происходящими из моего текущего рабочего пространства. Воспроизводимость здесь не проблема. Я также прочитал эту очень тонкую здесь.
Но все же я получаю сообщение об ошибке, жалующееся на то, что конкретный объект не найден.
1) Предположим, что я открываю новый документ и сохраняю его.
2) напишите фрагмент, который ссылается на некоторый объект lm
в моей рабочей области. вызов summary(mylmobject)
3) вязать его.
К сожалению, отчет сгенерирован, но выход регрессии не может быть показан, потому что объект не может быть найден. Обратите внимание, что он работает вообще, если я просто сохраняю объект в .Rdata, а затем загружаю его непосредственно из файла уценки.
Есть ли способ использовать объекты в методе R, которые находятся в текущем рабочем пространстве?
Это было бы очень приятно показать, что люди, не работающие в R, пока не работают.
Ответы
Ответ 1
RStudio открывает новый сеанс R для knit()
вашего файла R Markdown, поэтому объекты в текущем рабочем пространстве не будут доступны для этого сеанса (это два отдельных сеанса). Два решения:
- передать в RStudio файл запрос функции, попросив их поддерживать вязание в текущем сеансе R вместо принудительного запуска нового сеанса;
- вязать вручную самостоятельно:
library(knitr); knit('your_file.Rmd')
(или knit2html()
, если вы хотите, чтобы вывод HTML за один шаг или rmarkdown::render()
, если вы используете R Markdown v2)
Ответ 2
Вам может быть проще сохранить данные из другого сеанса, используя:
save.image("C:/Users/Desktop/example_candelete.RData")
а затем загрузите его в файл MD:
load("C:/Users/Desktop/example_candelete.RData")
Ответ 3
Markdownreports package в точности предназначен для синтаксического разбора документа уценки.
Ответ 4
Как прокомментировал Жюльен Коломб, я обнаружил, что в этой ситуации лучше всего сохранять большие объекты, а затем явно загружать их, пока я настраиваю уценку. Это необходимо, если ваши данные поступают через ODBC, и вы не хотите многократно выполнять полные запросы, когда вы работаете со шрифтами и темами.