2015-03-24 4 views
0

Я хочу прочитать куски в файле RMD из файла RNW, оба из которых находятся в разных папках. Я не могу заставить его работать. Похоже, что невозможно читать куски из файла RMD. read_chunk() функция, кажется, только для чтения из файла .R. Но в моем случае я не могу заставить его работать.Прочтите фрагмент из файла Rmd в файл Rnw

Вот мои три файла (в разных папках) и вывод моего файла RNW в конце. Любые идеи, почему это не работает?

".. \ Folder_R \ trial_r.R"

## @knitr r_chunk_1 
14 + 17 
cat("SUCCESS THIS IS R CHUNK 1!!!") 

## @knitr r_chunk_2 
plot(cars) 

".. \ Folder_html \ trial_html.RMD"

--- 
title: "Untitled" 
output: html_document 
--- 

```{r html_chunk_1} 
## @knitr html_chunk_1 
cat("SUCCESS THIS IS HTML CHUNK 1!!!") 
``` 

```{r html_chunk_2, echo=FALSE} 
## @knitr html_chunk_2 
plot(cars) 
``` 

».. \ Folder_latex \ trial_latex .RNW "

\documentclass{article} 

\begin{document} 
\SweaveOpts{concordance=TRUE} 

<<echo=FALSE>>= 
library(knitr) 

if (file.exists(file.path("..","Folder_html", "trial_html.Rmd"))) 
    cat("`trial_html` File Exists!!\n\n") 

read_chunk(file.path("..","Folder_html", "trial_html.Rmd")) 
@ 


<<latex_chunk_1, echo=FALSE>>= 
cat("This is LATEX Chunk!!") 
@ 

<<latex_chunk_2, ref.label='html_chunk_1', echo=FALSE>>= 
@ 

<<latex_chunk_3, echo=FALSE>>= 
<<html_chunk_1>> 
@ 

<<html_chunk_1, echo=FALSE>>= 
@ 

<<latex_chunk_4, echo=FALSE>>= 
if (file.exists(file.path("..","Folder_R", "trial_r.R"))) 
    cat("`trial_r` File Exists!!\n\n") 
read_chunk(file.path("..","Folder_R", "trial_r.R")) 
@ 

<<latex_chunk_5, echo=FALSE>>= 
<<r_chunk_1>> 
@ 

<<r_chunk_2>>= 
@ 

\end{document} 

В результате единственное, что я вижу в файле формата PDF является:

`trial_html` File Exists!! 
This is LATEX Chunk!! 
`trial_r` File Exists!! 

Я проверил следующие источники THIS, THIS несколько, что я хочу, но не поможет решить мою проблему, и THIS очень полезно, но Я не могу заставить его работать.

Мое предупреждение от компиляции:

You can now run (pdf)latex on 'trial_latex.tex' 
Warning messages: 
1: In utils::Sweave("trial_latex.Rnw", encoding = "ISO8859-1") : 
    reference to unknown chunk 'html_chunk_1' 
2: In utils::Sweave("trial_latex.Rnw", encoding = "ISO8859-1") : 
    reference to unknown chunk 'r_chunk_1' 
Running pdflatex.exe on trial_latex.tex...completed 
+1

сделал вы попробуйте запустить 'knitr ::: knit_code $ прибудет()', чтобы увидеть, какой код глыбы доступны? – sahir

+0

Я этого не знал. Когда я добавляю 'knitr ::: knit_code $ get()' в последний кусок моего RNW-файла, он показывает каждый кусок, который он должен читать. то есть '$ html_chunk_1',' $ html_chunk_2', '$ r_chunk_1',' $ r_chunk_2'. В этом случае проблема связана с вызовом '<< html_chunk_1 >>'. – HBat

ответ

1

Я думаю, что вы были using Sweave instead of knitr. Если вы используете RStudio, не забудьте изменить параметр:

+0

Спасибо, я вижу проблему. Мне также интересно, есть ли опция, например 'if (document is" rnw ") print (" Это латексный файл. ") Else if (document is" rmd ") print (" Это html-файл ".) '? Так что я могу изменить, например, размеры текста графиков в зависимости от того, является ли это html-документом или латексным документом. – HBat

Смежные вопросы