So you want to write a book from many RMD files using bookdown. Here is an R script that strips the YAML lines of an Rmd file because bookdown does not accept files with its own YAML. A new file is created that has no YAML. The program is written just for one Rmd file, and I will be writing an extension of it to do this for a whole directory including subdirectories. I will soon write a script that will move the YAML absent RMD files and associated sub-directories to a new directory of its own.
# A program to remove YAML from an RMD file.
# It can be modified to do this for all
# files in a directory and/or its subdirectories
# Stay tuned for the update.
#Set the working directory
setwd("C:/Users/yoda/Rmd")
# filename of the rmd file whose YAML you want to take out
fileName <- "Chapter01.03RoundoffErrors/0103RoundOffErrorsYaml.rmd"
# Open the file to read
Input_File <- file(fileName,open="r")
linn <-readLines(Input_File)
# icapture is a vector which will check the two lines
# that have --- in them.
icapture <- vector(,10)
# Just printing the lines in the rmd file, not needed.
#for (i in 1:length(linn)){
# print(linn[i])
#}
#The name of the file which will store YAML free RMD file.
YAML_Remove_File <- file("Chapter01.03RoundoffErrors/0103RoundOffErrorsYamlRemove.rmd",open="w")
j <- 0
#Capturing the two line numbers where --- exists
for (i in 1:length(linn)){
if(strtrim(linn[i],3) == "---"){
j <- j+1
icapture[j] <- i
}
# Write to the output file only if it has already captured two ---
if ((j==2) & (i!=icapture[2])){
writeLines(linn[i],con2)
}
}
#close the input and output files
close(Input_File)
close(YAML_Remove_File)
____________________________
This post is brought to you by
- Holistic Numerical Methods Open Course Ware:
- Numerical Methods for the STEM undergraduate at http://nm.MathForCollege.com;
- Introduction to Matrix Algebra for the STEM undergraduate at http://ma.MathForCollege.com
- the textbooks on
- the Massive Open Online Course (MOOCs) available at