knitrを使ってドキュメント生成をしている。ひとつのトピックにつきひとつの.Rmdファイルを作るので、ディレクトリ内に多くの.Rmdファイルができてしまう。それらをひとつづつHTMLに変換していくのは面倒なので、一括処理を行うための簡単なスクリプトを書いた。
library(knitr) library(markdown) files <- list.files(pattern="Rmd$") for (filename in files) { mdfile <- knit(input=filename) markdownToHTML(file=mdfile, output=sub("Rmd", "html", filename), stylesheet="./style.css") file.remove(mdfile) }
ディレクトリ内のファイルのうち、ファイル名が「Rmd」で終わるものだけをfilesという変数に入れ、for文でひとつずつ処理をしていく。
同様のスクリプトはMatlabではいくつも書いたことがあるのだけどRでは初めてだったので、ファイル名をいじるところで戸惑ってしまった。結局、hoge.Rmdをhoge.htmlに変換するのには正規表現(sub)を使った。途中でできるMarkdownファイルはちゃんと削除(file.remove)。なんだかMatlabより簡単だったかも。