2015-05-14 20 views
9

YAML'de runtime: shiny numaralı bir Rmd'ye sahip olduğumda, kod parçalarının önbellekten okunmayacağı anlaşılıyor. Rmarkdown için parlak motoru kullanmanın sadece yığın önbelleğini desteklemiyor mu, yoksa yanlış bir şey mi yapıyorum?Etkileşimli rmarkdown belgesinde knitr önbellek yığınını kullanmak mümkün mü?

Örnek RMD dosyası: Eğer bu 5 kez çalıştırırsanız

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

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

, sadece ilk kez 10 saniye sürecektir ve sonraki herhangi koşmak hızlı olacaktır.

Ancak, YAML'ye runtime: shiny seçeneğini eklerseniz, her bir işlem 10 saniye sürecektir.

(PS soru:? Olsun veya olmasın kod parçaları önbellek test etmek daha iyi bir yol kullanılıyor)

cevap

2

i runtime: shiny yılında, cache anahtarı göz ardı edildi, aynı sorunla karşılaştık.

Günümüzde cache=TRUE ile runtime: shiny_prerendered ve context="data" kullanarak bir çözüm vardır:

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

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

bu beklendiği gibi davranır; İlk çalışmada, render 10 saniye sürer; sonraki tüm çalışmalarda, önbelleğe alınan yığın kullanılır.

+2

Evet, bu parlak prerendered rstudio tarafından harika bir ektir :) –

+0

@DeanAttali İşe yarıyorsa, cevabı kabul etmeyi unutmayın. –

+0

@Yihui haklısınız, teşekkürler –

İlgili konular