texto - r markdown the definitive guide pdf
Las viñetas de Knitr.Rmd no aparecen con la viñeta() (2)
Bueno, encuentro una magia oscura que puede solucionar esta situación.
Desde Configure Build Tools...
, RStudio nos permite opciones personalizadas para R CMD INSTALL
cuando hace clic en el botón Build & Reload
. En la implementación actual, se comporta como la ejecución de R CMD INSTALL [options] pkg
en el directorio principal del directorio del paquete. Resulta que estas opciones pueden ser cadenas arbitrarias, incluso incluidas ;
, por lo tanto nos permite ejecutar comandos bash.
Por ejemplo, podemos especificar -v; cd pkg; cp vignettes/*html inst/doc; R CMD INSTALL --no-multiarch --with-keep.source .; echo
-v; cd pkg; cp vignettes/*html inst/doc; R CMD INSTALL --no-multiarch --with-keep.source .; echo
De esta manera, -v
anula la instalación de R CMD INSTALL
RStudio. Luego podemos copiar los archivos html incorporados en la vignette/
a inst/doc/
antes de instalar el paquete usando nuestro propio R CMD INSTALL
. ( cd pkg;
nos libera del nombre del tipo de paquete varias veces en los comandos subsiguientes. echo
anula el nombre del paquete adjunto por RStudio.
Sé que hay muchos inconvenientes en este truco, como el nombre del paquete de codificación rígida que es propenso a errores si el nombre del paquete se modifica más adelante.
Úselo bajo su propio riesgo.
Espero que RStudio salga pronto una solución elegante.
En un paquete que estoy desarrollando con R Studio, creo viñetas a través de devtools::use_vignette("mydoc.Rnw")
, lo que da un encabezado de viñeta estándar como
---
title: "Title"
author: "Michael Friendly"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
%/VignetteIndexEntry{Title}
%/VignetteEngine{knitr::rmarkdown}
%/VignetteEncoding{UTF-8}
---
He seguido todas las instrucciones en http://yihui.name/knitr/demo/vignette/ y http://r-pkgs.had.co.nz/vignettes.html . Las viñetas se enumeran en la página CRAN para el paquete, sin embargo, parecen inaccesibles en una sesión R con el paquete cargado.
> browseVignettes("matlib")
No vignettes found by browseVignettes("matlib")
> library(tools)
> names(vignetteEngine(package = ''matlib''))
Error in getEngine(name, package) :
None of packages ‘matlib’ have registered vignette engines
Sé que otros paquetes con viñetas knitr
procesadas por knitr son accesibles desde el paquete, pero no puedo entender por qué los míos no son accesibles. ¿Lo que falta?
El directorio Mis vignettes/
contiene solo los archivos .Rmd (no PDF), pero parece lo mismo que, por ejemplo, https://github.com/yihui/knitr/tree/master/vignettes .
Tenga en cuenta que devtools no crea viñetas de forma predeterminada cuando devtools::install()
(lo mismo para algunas funciones install_*
como install_github()
) un paquete de un directorio. build_vignettes = TRUE
especificar el argumento build_vignettes = TRUE
cuando instale el paquete. Actualmente no hay forma de crear viñetas usando devtools si solo usas el botón RStudio Build & Reload
. Tienes que Build Source Package
y ejecutar R CMD INSTALL
en el tarball. O ejecute devtools::install(build_vignettes = TRUE)
en la consola R.