[R-br] Rmarkdow - Script Walmes
Fernando Antonio de souza
nandodesouza em gmail.com
Segunda Fevereiro 15 13:07:18 BRST 2016
Caros colegas, ha algum tempo postei uma dúvida sobre o Rmarkadow na
lista. O Walmes me respondeu co um bash script para compilar arquivo
através do terminal. Acontece que este script utiliza o comando "purl -n" o
qual não possuo em meu sistema (Debian 8). Já procurei na internet e não
encontrei nenhuma referência a este comando. Alguém sabe me informar de
onde ele é oriundo?E como obtê-lo?
att
Fala do Walmes:
"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-to-get-long-and-short-command-line-options
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 em 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 em gmail.com
https://producaoanimalcomr.wordpress.com/
========================================================================
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160215/2bf4de0d/attachment.html>
Mais detalhes sobre a lista de discussão R-br