2017-03-06 86 views
3

以我rmarkdown文檔,我能夠顯示和隱藏代碼與下列 - 其中每個代碼塊之前創建的文檔的右手側上的方便按鈕:中的R降價崩/隱藏數字

output: 
    html_document: 
    code_folding: hide 

enter image description here enter image description here

是否有隱藏表格或數字同樣方便的方法?如果是這樣,請提供參考,因爲我沒有找到任何。否則,將不勝感激,謝謝!

+0

這不是結果=「隱藏」,你是否感興趣? http://kbroman.org/knitr_knutshell/pages/Rmarkdown.html – TKN

+0

是的,但是如果你想看到它們,沒有方便的方式來「顯示」結果。 '結果=「隱藏」'永久隱藏它們。我有興趣在上面的按鈕解決方案 –

回答

3

如果你想有一個撥動每塊前添加到您的.Rmd文件

<script> 
$("input.hideshow").each(function (index, button) { 
    button.value = 'Hide Output'; 
    $(button).click(function() { 
    var target = this.nextSibling ? this : this.parentNode; 
    target = target.nextSibling.nextSibling.nextSibling.nextSibling; 
    if (target.style.display == 'block' || target.style.display == '') { 
     target.style.display = 'none'; 
     this.value = 'Show Output'; 
    } else { 
     target.style.display = 'block'; 
     this.value = 'Hide Output'; 
    } 
    }); 
}); 
</script> 

和結束那麼這個:

<input type=button class=hideshow></input> 

(改編自這裏:https://groups.google.com/forum/#!topic/knitr/d37E0mP3w6k

注意:如果您顯示的是密碼 - 如果您隱藏密碼(使用echo = FALSE),則更改

target = target.nextSibling.nextSibling.nextSibling.nextSibling; 

target = target.nextSibling.nextSibling; 

注2:如果你想使用code_folding選項,更改

target = target.nextSibling.nextSibling.nextSibling.nextSibling; 

target = target.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling; 
+0

謝謝,是否有一個原因,它不會與'code_folding'? –

+0

這有點不好意思,但是我已經更新了,以便它適用於'code_folding' - 基本上,添加切換添加了需要跳過的另一個節點,因此您需要在腳本中添加一個'.nextSibling'。 – Lucy

+1

這太好了,謝謝!你知道我怎樣才能隱藏它默認情況下,讓用戶可以點擊「顯示輸出」按鈕,而不是遇到一個需要隱藏的大表?超級有用的功能,我希望看到添加到KnitR等 – lukeholman

5

我一直沒能得到上述解決方案(或其他我發現的)工作一致但使用我在W3schools.com找到的in-line html(Bootstrap示例/解決方案)在Rmarkdown中運行良好。

我用它在下面的例子中顯示了一個簡單的HTML輸出圖。它應該與任何塊輸出一起工作:

<button class="btn btn-primary" data-toggle="collapse" data-target="#SessionInfo"> Show/Hide </button> 
<div id="SessionInfo" class="collapse"> 

```{r} 
plot(mtcars$disp, mtcars$mpg) 
``` 

</div> 
+0

它不清楚你的哪個部分的例子是用來隱藏塊和哪個是你的會議信息的代碼。我認爲按鈕和div組件是需要的但沒有成功。在你的r代碼塊中有什麼需要做這個工作? – ansek

+0

我編輯它到最低限度,以便它不依賴於上面的任何額外的軟件包。看看是否有效。 –

+0

如果你想要更好的'sessionInfo',我最近發現'Hmisc'包中的函數是有幫助的。現在我使用:'Hmisc :: markupSpecs $ html $ session()' –