2016-01-14 15 views
6

R Markdown/Knitr raporunda etkileşimli olarak kod gösterme/gizleme yolu var mı? Seni doğru anladıysamEtkileşimli olarak göster/gizle R Markdown/Knitr raporu

+1

minimal örnek senaryosunu verin, bunu işliyoruz nasıl komutları, ve kullanıcının nasıl okuduğunu ve etkileşimde bulunduğunu daha kapsamlı bir şekilde açıklar. Markdown/Knitr'i tam olarak bilmeye yardımcı olacak pek çok yol var. – Spacedman

cevap

7

, en azından bu asgari örnekte olduğu gibi, HTML çıktısını kullanarak bunu yapabilir:

--- 
title: "Toggle Code boxes" 
output: html_document 
date: "January 12, 2016" 
--- 

First add the javascript to toggle boxes(remember to indent it) 

    <script language="javascript"> 
    function toggle(num) { 
     var ele = document.getElementById("toggleText" + num); 
     var text = document.getElementById("displayText" + num); 
     if(ele.style.display == "block") { 
     ele.style.display = "none"; 
     text.innerHTML = "show"; 
     } 
     else { 
     ele.style.display = "block"; 
     text.innerHTML = "hide"; 
     } 
    } 
    </script> 

and then we have some R code with the toggle button wrapped around (also indented): 

    <a id="displayText" href="javascript:toggle(1);">Show underlying code</a> 
    <div id="toggleText1" style="display: none"> 

```{r} 
x <- sample(100) 
mean.x <- mean(x) 
``` 

    </div> 

The mean is `r mean.x`. Please click the link to see the source code. 

    <a id="displayText" href="javascript:toggle(2);">Show underlying code</a> 
    <div id="toggleText2" style="display: none"> 

```{r} 
median.x <- median(x) 
``` 

    </div> 

And the median is `r median.x`. Please click the link to see the source code. 
+0

Tam olarak ihtiyacım olan şey, çok teşekkürler – Guillaume

+0

Her zaman yazdırılan çıktıyı görmek ve kodu göstermek/gizlemek istesem ne olur? –

+0

Bunun en verimli çözüm olacağından emin değilim, ancak geçici çözüm olarak, iki ayrı parça öneririm, kod yığınında sonuçları hesaplarsınız ve sonra bunları orada saklarsınız. Ve sonuç öbekleri, daha sonra onları basıyor, sonra tuttuğunuz ikincisi her zaman görünür olacak ve sadece geçiş yaptığınız ilk. –

İlgili konular