
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? Att. Em 16 de março de 2015 14:28, walmes . <walmeszeviani@gmail.com> escreveu:
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.
## COMEÇA ARQUIVO render
#!/bin/bash
# Seguir as intruções aqui # https://github.com/rstudio/rmarkdown/blob/master/PANDOC.md para criar # links simbólicos para o pandoc. No caso, tem-se que fazer # $ sudo ln -s /usr/lib/rstudio/bin/pandoc/pandoc /usr/local/bin # $ sudo ln -s /usr/lib/rstudio/bin/pandoc/pandoc-citeproc /usr/local/bin # para poder usar esse bash.
#----------------------------------------------------------------------------- # Compilar *.Rmd para *.html com rmarkdown::render. # Walmes Zeviani
#-----------------------------------------------------------------------------
echo echo "=============================================================================" echo "Compilando *.Rmd para *.html com rmarkdown::render." echo " Walmes Zeviani" echo "=============================================================================" echo
##----------------------------------------------------------------------------- ## http://stackoverflow.com/questions/402377/using-getopts-in-bash-shell-script...
Options=$@ Optnum=$#
_usage() { #-------------------------------------------- # Shows how use. cat <<EOF render $Options $* Usage: render <[options]> file
file Is a filename with extension *.Rmd.
Options: -h --help Show this message -p --purl To purl the file
EOF } if [ $# = 0 ]; then _usage; fi
#----------------------------------------------------------------------------- # NOTE: This requires GNU getopt. On Mac OS X and FreeBSD, you have to # install this separately.
TEMP=`getopt -o hp --long help,purl -n 'render' -- "$@"` if [ $? != 0 ] ; then echo "Terminating." >&2 ; exit 1 ; fi
# Note the quotes around `$TEMP': they are essential! eval set -- "$TEMP"
PURL= while true; do case "$1" in -h | --help ) _usage break exit 1 ;; -p | --purl ) PURL=true shift ;; -- ) shift; break ;; * ) _usage break exit 1 ;; esac done
INPUT=$1 case "$INPUT" in *.Rmd ) echo; echo "Running rmarkdown::render(\"$INPUT\")."; echo Rscript -e "require(knitr); require(rmarkdown); render(\"$INPUT\")" ;; *) echo "The file $INPUT has a non supported file extension." exit 1 ;; esac
if [[ "$PURL" == "true" ]] then purl -n $INPUT fi
##-----------------------------------------------------------------------------
## Para fazer em batelada. ## for file in `ls *.Rmd` ## do ## rmarkdownRender -p $file ## done
## FIM DO ARQUIVO render
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.
$ ls -l render ## Lista permissões. $ chmod +x render ## Permite execução. $ ls -l render ## Lista novamente. $ sudo cp render /bin ## Copia para a pasta /bin $ render nome_do_arquivo.Rmd ## Modo de usar.
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
export PATH=$PATH:/home/walmes/bashs/
À disposição. Walmes.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- ======================================================================= Fernando Souza Zootecnista, DSc. Produção Animal e-mail:nandodesouza@gmail.com https://producaoanimalcomr.wordpress.com/ ========================================================================