2015-05-14 15 views
9

Ho notato che quando ho un Rmd con runtime: shiny nello YAML, i blocchi di codice non sembrano essere letti dalla cache. Mi chiedo se l'utilizzo del motore lucido per rmarkdown non supporti il ​​caching di blocchi, o sto facendo qualcosa di sbagliato?È possibile utilizzare il blocco della cache knitr nel documento rmarkdown interattivo?

di file Esempio Rmd:

--- 
title: "Cache test" 
output: html_document 
--- 

```{r cache=TRUE} 
Sys.sleep(10) 
``` 

Se si esegue questo 5 volte, solo la prima volta si svolgerà in 10 secondi, ed ogni corsa successiva sarà veloce.

Ma se si aggiunge l'opzione runtime: shiny allo YAML, ogni singola corsa impiegherà 10 secondi.

(domanda PS:? Un modo migliore per testare la cache pezzi o meno di codice è in uso)

risposta

2

Ho incontrato lo stesso problema in cui, nel runtime: shiny, l'interruttore cache è stato ignorato.

Al giorno d'oggi c'è una soluzione, utilizzando runtime: shiny_prerendered e context="data" con cache=TRUE:

--- 
title: "Cache test" 
output: html_document 
runtime: shiny_prerendered 
--- 

```{r,context="data", cache=TRUE} 
Sys.sleep(10) 
``` 

questo si comporta come previsto; alla prima esecuzione, il rendering impiega 10 secondi; in tutte le esecuzioni successive, viene utilizzato il blocco memorizzato nella cache.

+2

Sì, questo lucido prerenderato è una grande aggiunta di rstudio :) –

+0

@DeanAttali Se funziona, non dimenticare di accettare la risposta. –

+0

@Yihui hai ragione, grazie –

Problemi correlati