Сохранить блок knitr в файл R
В книтре есть read_chunk
функция, которая читает внешний код в чанк. Можно ли повернуть процесс вспять? То есть сделать функцию write_chunk()
которые сохраняют исходный код в чанке в файл R? Имя файла может совпадать с именем чанка.
2 ответа
Решение
Я нашел решение, используя крючки. Добавьте следующий хук:
knit_hooks$set(write_chunk = function(before, options, envir) {
if (before) {
fileConn<-file(paste0("chunk_",options$label,".R") )
writeLines(options$code, fileConn)
close(fileConn)
}
})
и использовать опцию <<chunk-name, write_chunk=TRUE>>
в заголовке чанка.
Вы можете использовать следующий синтаксис
Stangle(file = "Your_code.Rnw",output="Code.R"):
Но в этом я могу доказать следующую ошибку:
#Error: ‘Your_code.Rnw’ is not ASCII and does not declare an encoding
При добавлении следующего параметра (encoding = "UTF-8") проблема кодирования решена
Stangle("Your_code.Rnw",output="Code.R",encoding="utf8")