2014-03-28 68 views
-1

我嘗試指定作爲R hist()框的數目爲10,如下指定R中hist()中的bin數目?

> hist(x, breaks=10) 

但是倉的數量是不完全10.我嘗試用幾個垃圾箱的其他號碼,同樣的事情發生。

?hist說:breaks可以指定

單號給細胞直方圖的數量。

所以我想知道我現在可以做什麼?謝謝!

+0

您應該閱讀整個文檔。 「在最後三種情況下,這個數字只是一個建議,斷點將設置爲相當大的數值。」如果你想要精確的值作爲中斷,你可以傳遞一個斷點向量。 – Roland

+0

我在'hist(rnorm(100),breaks = 10)'中得到了10個bin。然而,如果我做'hist(c(rnorm(100),5),breaks = 10)',我得到的數量少於10個,因爲沿着x有一定的範圍,沒有數據。也許這是發生在你身上的事。 – rawr

+0

@羅蘭:如果我指定休息時間爲600,那麼可能會有500個垃圾箱嗎? – Tim

回答

1

你總是可以創建自定義的斷點

x = rnorm(500) 
brks = seq(-3,3,0.1) 
hist(x, breaks = brks) 
+0

謝謝!一個側面的問題,如果我使用與實際論證的正式論證相同的名稱,它總是有效的話是否正確?例如。 'breaks = seq(-3,3,0.1); hist(x,break = break)'? – Tim

+0

我在發佈問題之前已嘗試過您的方法。這個問題是我指定'brks = seq(min(x),max(x),length.out = 500)',但是'hist(x,breaks = brks)'抱怨''x的某些條目wouldn不會包含在直方圖中。那麼你會如何解決這個問題? – Tim

1

添寫下了評論:

有這個問題是我指定的brks = SEQ(分鐘(X),MAX(X),長度但是hist(x,breaks = brks)抱怨x的一些條目不會包含在直方圖中

我有同樣的問題。我懷疑會發生這種情況,因爲範圍邊界上的值不計算在內。我有2個解決方案,但不滿足100%。

解決方案1. 製作序列時,將最小值設置得稍低一點,最大值稍微高一點。

brks = seq(min(x)*.99999,max(x)*1.00001,length.out=500) 

溶液2代替HIST()的使用切()和barplot的組合()。該圖看起來幾乎與hist相同,但不會生成像hist()這樣的數據框。

barplot(summary(cut(data, 10)), space=0)