Доступ к данным, генерируемым R-скриптом с r-уценкой и knitr

47
6

Я новичок в 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

благодаря

спросил(а) 2015-07-09T20:19:00+03:00 4 года, 4 месяца назад
1
Решение
63

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')

ответил(а) 2015-07-10T01:58:00+03:00 4 года, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема