Доступ к данным, генерируемым R-скриптом с r-уценкой и knitr
Я новичок в R markdown и knitr и не нашел ответа на этот вопрос:
У меня есть сценарии R, где я написал функции и присвоил данные позиции 1 (.GlobalEnv). Как мне получить доступ к моим данным и запустить мои функции в R markdown и сгенерировать файл.html с knitr?
Здесь тривиальный пример. В файле сценария я генерирую:
some.x.data<-1:10
some.y.data<-1:10
toy.fn<-function(){
tot<-some.x.data + some.y.data
tot
}
toy.fn() работает в файле сценария.
Мой файл разметки R содержит:
---
title: "trivial test"
author: "me"
date: "July 9, 2015"
output: html_document
---
'''{r}
plot(some.x.data, some.y.data)
toy.fn()
'''
Когда я нажимаю knit HTML, я получаю следующую ошибку:
Ошибка в графике (some.x.data, some.y.data): объект "some.x.data" не найден. Вызовы:... withCallingHandlers → withVisible → eval → eval → plot
благодаря
RStudio открывает новый R-сеанс для knit()
вашего Rmd
файла, поэтому объекты в .GlobalEnv
не будут доступны для этого сеанса (это два отдельных сеанса), поэтому, когда вы knitr
HTML
knitr
нет способа узнать, что some.x.data
, some.y.data
и toy.fn
есть.
Либо вам нужно воссоздать их в вашем файле Rmd
. Если вы не хотите, чтобы какой-либо результат просто выполнялся:
'''{r, echo = FALSE, message = FALSE}
some.x.data<-1:10
some.y.data<-1:10
toy.fn<-function(){
tot<-some.x.data + some.y.data
tot
}
'''
Полный Rmd
:
---
title: "trivial test"
author: "me"
date: "July 9, 2015"
output: html_document
---
'''{r, echo = FALSE, message = FALSE}
some.x.data<-1:10
some.y.data<-1:10
toy.fn<-function(){
tot<-some.x.data + some.y.data
tot
}
'''
'''{r}
plot(some.x.data, some.y.data)
toy.fn()
'''
Или
knit
вручную самостоятельно: library(knitr); knit('your_file.Rmd')
library(knitr); knit('your_file.Rmd')