2016-04-11 18 views
3

ディレクトリ、例えば、Parent.Rmd、子文書の数から子RMDファイルをインクルードする方法はありますがに含まれています異なる私はマスター値下げファイルを持っている

'Rmd'という名前のサブディレクトリから同じファイルをプルすることはできますが、接続を開くことはできません。

私はまた、使用することを試みた:

`knitr::opts_chunk$set(child.path='Rmd')` 

が、チャンク・コードは、それを無視します。別の方法がありますか?私のrmarkdownバージョンは0.9.5で、knitrは1.12

+0

? http://stackoverflow.com/q/26489328/471093 – baptiste

+0

ありがとうございます。関連しているかもしれませんが、そうかもしれませんが、私が言うことから直接的には適用できません。私たちはLaTeXを使用しないことを選択しました... – Alan

+0

knit 1.12.3で問題を再現しようとしましたが、それを再現できません。 [this](http://www.r-fiddle.org/#/fiddle?id=1lWeNXEg)ドキュメントは、 'rmd'サブフォルダの' first.Rmd'と 'second.Rmd'でうまく動作します。 –

答えて

0

とうまくいけば、@Yihuiは私の提案する解決策よりもあなたの質問にもっとうまく答えることができます。 :)

ここではちょっと前にハックしましたInclude HTML files in R Markdown file?

--- 
title: "BookTitle" 
output: html_document 
--- 

My introduction goes here 

<<insertHTML:[chapters/chapter2.Rmd] 

some practice questions 

<<insertHTML:[chapters/chapter3.Rmd] 

章/ chapter2.Rmdファイル:

## Chapter 2 

This is my chapter 2. 

章/ chapter3.Rmdファイル:

及び方法は同様にあなたの要件に

bookstruct.Rmdファイルを動作するはずです

## Chapter 3 

This is my chapter 3. 

Rコンソールでは、これを実行します。

関連
library(stringi) 

subRender <- function(mdfile, flist) { 
    #replace <<insertHTML:flist with actual html code 
    #but without beginning white space 
    rmdlines <- readLines(mdfile) 
    toSubcode <- paste0("<<insertHTML:[",flist,"]") 
    locations <- sapply(toSubcode, function(xs) which(stri_detect_fixed(rmdlines, xs))) 
    subfiles <- lapply(flist, function(f) stri_trim(readLines(f))) 
    strlens <- sapply(subfiles,length) 

    #render html doc 
    newRmdfile <- tempfile("temp", getwd(), ".Rmd") 

    #insert flist at specified locations 
    #idea from @Marek in [2] 
    alllines <- c(rmdlines[-locations], unlist(subfiles)) 
    ind <- c((1:length(rmdlines))[-locations], 
     unlist(lapply(1:length(locations), function(n) locations[n] + seq(0, 1, len=strlens[n])/1.1))) 
    sortedlines <- alllines[order(ind)] 

    #render html 
    write(sortedlines, newRmdfile) 
    rmarkdown::render(newRmdfile, "html_document") 
    shell(gsub(".Rmd",".html",basename(newRmdfile),fixed=T)) 
} #end subRender 

subRender(mdfile="bookstruct.Rmd", 
    flist=list("chapters/chapter2.Rmd", "chapters/chapter3.Rmd")) 

[2] How to insert elements into a vector?

+0

@ chinsoo12:あなたの努力に感謝します。あなたのソリューションを試す前に、すべてのRmdを1つのディレクトリに入れ、ソースレンダリング時にそのディレクトリに変更しようとします。それでも問題が解決しない場合、私はあなたのソリューションを適用しようとします。私の質問の背後にあったのは、私たちの主なプロジェクトディレクトリを整理することです。再度、感謝します。 – Alan

+0

同じディレクトリの考え方がうまくいくようです。 https://stackoverflow.com/questions/25824795/how-to-combine-two-rmarkdown-rmd-files-into-a-single-outputを参照してください。 – jsta

関連する問題