tutorial the sheet rmarkdown guide definitive chunk cheat cache r latex knitr

the - Haciendo knitr opcional



r markdown tutorial pdf (1)

Cuando escribo un artículo, generalmente uso knitr para insertar tablas y gráficos que genero en R. Todo esto funciona excepcionalmente bien para mí. Sin embargo, algunos de mis coautores no están tan entusiasmados con este flujo de trabajo y preferirían simplemente dejarme las interacciones con knitr y concentrarme en escribir sus secciones sin tener que molestarme con el código R. También preferirían no tener que instalar R, RStudio y varios paquetes.

Entonces, ¿hay alguna forma de componer documentos LaTeX con fragmentos knitr incrustados sin tener que ejecutarlos a través de R primero? En otras palabras, ¿hay alguna forma de simplemente ignorar los trozos durante el proceso de composición (o quizás reemplazarlos con tablas / diagramas ficticios)?


Actualización: descripción revisada here

Esto no responde a la pregunta exacta, pero tal vez el caso de uso. Hace poco tuve un desafío similar: quería combinar la escritura y el análisis en un archivo .rnw , pero mis colaboradores no querían usar R / RStudio / GitHub / LaTeX.

Así que decidí compartir una subcarpeta de mi repositorio git con ellos a través de Dropbox. Esta carpeta contiene tres archivos .docx : introduction.docx , methods.docx , y .rnw (escribo la sección de resultados dentro del archivo .rnw ). El único problema es que tienen que usar algunos LaTeX muy básicos cuando escriben, por ejemplo, /subsection{heading} para encabezados, /cite{key} para referencias, `` comillas '''', escapando de /%, / $ y / & .

De vuelta en el archivo .rnw , convierto los archivos .docx a .txt :

system("textutil -convert txt introduction.docx")

y luego renombra la extensión de archivo de .txt a .tex :

file.rename("introduction.txt", "introduction.tex")

Luego, fuera de los fragmentos de código R , .tex archivos .tex con:

/input{introduction}

Publiqué un pequeño ejemplo a GitHub.

/documentclass{article} /makeatletter /renewcommand{/@biblabel}[1]{/quad#1.} /makeatother /date{} /bibliographystyle{plain} /begin{document} /begin{flushleft} {/Large /textbf{My Title} } /end{flushleft} /section{Introduction} % do not write in this section...let collaborators write in introduction.docx <<intro, include=FALSE>>= # assumes wd set to root folder collaborate # convert docx to txt system("textutil -convert txt introduction.docx") # rename txt to tex file.rename("introduction.txt", "introduction.tex") @ % pull in introduction.tex /input{introduction} /section{Methods} <<methods, include=FALSE>>= system("textutil -convert txt methods.docx") file.rename("methods.txt", "methods.tex") @ /input{methods} /section{Results} <<results>>= dat <- data.frame(x=runif(30, 0, 30)) mean <- mean(dat$x, na.rm=TRUE) @ The mean is /Sexpr{round(mean, 1)}. /section{Discussion} <<discussion, include=FALSE>>= system("textutil -convert txt discussion.docx") file.rename("discussion.txt", "discussion.tex") @ /input{discussion} /bibliography{example.bib} /end{document}