2017-04-26 23 views
3

我正在使用RStudio:版本1.0.136,並試圖理解爲什麼knitr呈現下面命令中包含的直方圖。任何幫助表示讚賞。Knitr呈現圖形,儘管它不應該

min_ct<-as.numeric(min(hist(myfdata[myfdata$slope>low & myfdata$slope<up, ]$dy, breaks = bi)$counts)) 

的4倍渲染的圖形,這是不顯式生成的屏幕截圖。

enter image description here

+0

調用'hist'導致直方圖,即使你分配輸出到一個變量來進行渲染。在控制檯中嘗試'x = hist(rnorm(100))'。保存到變量中的是包含用於生成直方圖的數據的列表,但直方圖仍在打印。 – eipi10

+0

謝謝!你知道一種方法來抑制圖形渲染或不同以獲取直方圖的值嗎?我正在生成一個閃亮的文檔(rmd),並且所有圖形都被渲染。我可以將代碼分佈在不同的塊中,並禁用輸出,但我認爲這並不好,乾淨。 – Joerg

+1

是的,使用'cut'函數創建bin,然後使用'table'按bin來計數值的數量。例如,'table(cut(rnorm(100),breaks = seq(-3,3,0.1)))'。 'cut'有幾個選項會影響如何分配垃圾箱,所以請查看幫助('?cut')瞭解更多信息。特別要注意'right','include.lowest'和'labels'參數。 – eipi10

回答

3

這不是一個knitr問題。即使將輸出分配給變量,調用hist也會生成直方圖。在控制檯上試試x = hist(rnorm(100))。保存到變量中的是包含用於生成直方圖的數據的列表,但直方圖仍在打印。

若要在不打印柱狀圖的情況下創建分箱,請使用cut函數創建分箱,然後使用table按分箱計算值的數量。例如,table(cut(rnorm(100), breaks=seq(-3,3,0.5)))

cut有影響如何分配垃圾箱的選項,所以請查看幫助(?cut)以獲取更多信息。尤其要注意rightinclude.lowest的論點。

+1

也有調用hist(數據,plot = FALSE)的奇怪方法 –

+0

謝謝,這也適用。 – Joerg

相關問題