<div dir="ltr"><div>Caro Walmes, Há algum tempo atrás, postei um dúvida sobre a função render do pacote Rmarkdown. Você me passou um bash script para poder fazer a compilação via terminal. Eu estou tendo um problem com este script. Eu não possuo em meu sistema a função "purl" utilizada no código. Já procurei na internet e não sei como obtê-la. Você poderia me ajudar? <br><br></div>Att.<br></div><div class="gmail_extra"><br><div class="gmail_quote">Em 16 de março de 2015 14:28, walmes . <span dir="ltr"><<a href="mailto:walmeszeviani@gmail.com" target="_blank">walmeszeviani@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Eu uso o Emacs para edição de documentos R. Para compilar eu abro um terminal e dou instrução lá. Antes eu abria um terminal do linux e chamava o R dentro. Hoje já uso um shell script que facilita bem mais as coisas. Segue o shell script. Dentro tem o comentário logo no topo de como fazer o link simbólico.<br><br></div><div class="gmail_default"><span style="color:rgb(11,83,148)"><span style="font-family:monospace,monospace">## COMEÇA ARQUIVO render<br></span></span></div><div class="gmail_default"><span style="color:rgb(11,83,148)"><span style="font-family:monospace,monospace"><br>#!/bin/bash<br><br># Seguir as intruções aqui<br># <a href="https://github.com/rstudio/rmarkdown/blob/master/PANDOC.md" target="_blank">https://github.com/rstudio/rmarkdown/blob/master/PANDOC.md</a> para criar<br># links simbólicos para o pandoc. No caso, tem-se que fazer<br># $ sudo ln -s /usr/lib/rstudio/bin/pandoc/pandoc /usr/local/bin<br># $ sudo ln -s /usr/lib/rstudio/bin/pandoc/pandoc-citeproc /usr/local/bin<br># para poder usar esse bash.<br><br>#-----------------------------------------------------------------------------<br># Compilar *.Rmd para *.html com rmarkdown::render.<br># Walmes Zeviani<br>#-----------------------------------------------------------------------------<br><br>echo<br>echo "============================================================================="<br>echo "Compilando *.Rmd para *.html com rmarkdown::render."<br>echo " Walmes Zeviani"<br>echo "============================================================================="<br>echo<br><br>##-----------------------------------------------------------------------------<br>## <a href="http://stackoverflow.com/questions/402377/using-getopts-in-bash-shell-script-to-get-long-and-short-command-line-options" target="_blank">http://stackoverflow.com/questions/402377/using-getopts-in-bash-shell-script-to-get-long-and-short-command-line-options</a><br><br>Options=$@<br>Optnum=$#<br><br>_usage() {<br> #--------------------------------------------<br> # Shows how use.<br>cat <<EOF<br>render $Options<br>$*<br> Usage: render <[options]> file<br><br> file Is a filename with extension *.Rmd.<br><br> Options:<br> -h --help Show this message<br> -p --purl To purl the file<br><br>EOF<br>}<br>if [ $# = 0 ]; then _usage; fi<br><br>#-----------------------------------------------------------------------------<br># NOTE: This requires GNU getopt. On Mac OS X and FreeBSD, you have to<br># install this separately.<br><br>TEMP=`getopt -o hp --long help,purl -n 'render' -- "$@"`<br>if [ $? != 0 ] ; then echo "Terminating." >&2 ; exit 1 ; fi<br><br># Note the quotes around `$TEMP': they are essential!<br>eval set -- "$TEMP"<br><br>PURL=<br>while true; do<br> case "$1" in<br> -h | --help )<br> _usage<br> break<br> exit 1<br> ;;<br> -p | --purl )<br> PURL=true<br> shift<br> ;;<br> -- )<br> shift; break ;;<br> * )<br> _usage<br> break<br> exit 1<br> ;;<br> esac<br>done<br><br>INPUT=$1<br>case "$INPUT" in<br> *.Rmd ) <br> echo; echo "Running rmarkdown::render(\"$INPUT\")."; echo<br> Rscript -e "require(knitr); require(rmarkdown); render(\"$INPUT\")"<br> ;;<br> *)<br> echo "The file $INPUT has a non supported file extension."<br> exit 1<br> ;;<br>esac<br><br>if [[ "$PURL" == "true" ]]<br>then<br> purl -n $INPUT<br>fi<br><br>##-----------------------------------------------------------------------------<br><br>## Para fazer em batelada.<br>## for file in `ls *.Rmd`<br>## do<br>## rmarkdownRender -p $file<br>## done<br><br></span></span></div><span style="color:rgb(11,83,148)"><span style="font-family:monospace,monospace"></span></span><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;display:inline"><span style="color:rgb(11,83,148)"><span style="font-family:monospace,monospace">## FIM DO ARQUIVO render</span></span><br><br><br>Esse arquivo "render" você pode deixar na sua pasta "/bin" do linux. Tem que dar permissão de execussão. Suponha que o arquivo seja criado num lugar qualquer então execute esses passos.<br><br><span style="font-family:monospace,monospace">$ ls -l render ## Lista permissões.<br>$ chmod +x render ## Permite execução.<br>$ ls -l render ## Lista novamente.<br>$ sudo cp render /bin ## Copia para a pasta /bin<br>$ render nome_do_arquivo.Rmd ## Modo de usar.</span><br><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;display:inline">Eu na verdade prefiro deixar meus shell numa pasta própria ao inves da /bin. Vamos supor que seja a /home/bashs. Você só precisa adicionar o PATH ao conjunto de paths monitorados. Se faz isso incluindo a seguinte linha dentro do seu arquivo /home/walmes/.bashrc<br><br><span style="font-family:monospace,monospace">export PATH=$PATH:/home/walmes/bashs/</span><br><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;display:inline">À disposição.<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;display:inline">Walmes.<br></div></font></span></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">=======================================================================<br>Fernando Souza<br>Zootecnista, DSc. Produção Animal<br><a href="mailto:e-mail%3Anandodesouza@gmail.com" target="_blank">e-mail:nandodesouza@gmail.com</a><br><a href="https://producaoanimalcomr.wordpress.com/" target="_blank">https://producaoanimalcomr.wordpress.com/</a><br>========================================================================<br></div></div></div></div></div></div></div></div>
</div>