Это решение принимает код в виде строки, создает файл Rmd и отображает его в html:
Редактировать 1: Я должен также упомянуть, что я проверял это только на RStudio ...
my_markdown_rederer <- function(text) {
rmd_file_name <- "temp.Rmd"
yaml_header <- "---
output:
html_document:
toc: true
fig_caption: true
theme: flatly
---"
content <- paste0(yaml_header,
"\n",
"\n",
"```{r, echo=FALSE}\n",
text,
"\n",
"```\n")
write(content, rmd_file_name)
rmarkdown::render(rmd_file_name)
utils::browseURL(paste0("file://", utils::URLencode(gsub("Rmd$", "html", rmd_file_name))))
}
text <- 'd1 = list(
a = 42,
b = "foo",
c = c("elem1","elem2","elem3"))
d1'
my_markdown_rederer(text)
Редактировать 2: Мы также можем напрямую использовать уже существующий файл .R
text <- 'd1 = list(
a = 42,
b = "foo",
c = c("elem1","elem2","elem3"))
d1'
# Create .R file for example where we make html from an existing file
#
fileConn <- file("file_with_original_pure_R_code.R")
writeLines(text, fileConn)
close(fileConn)
# Example using an existing .R file
#
file_handler <- file("file_with_original_pure_R_code.R")
text <- paste0(readLines(file_handler), collapse="\n")
close(file_handler)
my_markdown_rederer(text)
Редактировать 3: Заголовок yaml может даже не быть необходимым