#' Convert RMD to R SCRIPT. Will save a file same location with noncode blocks commented out.
#' adapted from http://rstudio-pubs-static.s3.amazonaws.com/12734_0a38887f19a34d92b7311a2c9cb15022.html
#' @export
rmd2rscript <- function(infile){
# read the file
flIn <- readLines(infile)
# identify the start of code blocks
cdStrt <- which(grepl(flIn, pattern = "```{r*", perl = TRUE))
# identify the end of code blocks
cdEnd <- sapply(cdStrt, function(x){
preidx <- which(grepl(flIn[-(1:x)], pattern = "```", perl = TRUE))[1]
return(preidx + x)
})
# define an expansion function
# strip code block indacators
flIn[c(cdStrt, cdEnd)] <- ""
expFun <- function(strt, End){
strt <- strt+1
End <- End-1
return(strt:End)
}
idx <- unlist(mapply(FUN = expFun, strt = cdStrt, End = cdEnd,
SIMPLIFY = FALSE))
# add comments to all lines except code blocks
comIdx <- 1:length(flIn)
comIdx <- comIdx[-idx]
for(i in comIdx){
flIn[i] <- paste("#' ", flIn[i], sep = "")
}
# create an output file
nm <- strsplit(infile, split = "\\.")[[1]][1]
flOut <- file(paste(nm, "[rmd2r].R", sep = ""), "w")
for(i in 1:length(flIn)){
cat(flIn[i], "\n", file = flOut, sep = "\t")
}
close(flOut)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.