web-dev-qa-db-ja.com

Rのhist()とブレーク間隔を理解する

私は最近Rを使い始めて、hist()関数をよく理解していないと思います。私は現在、長さ296の数値ベクトルを使用しています。それを10の等間隔に分割し、頻度ヒストグラムを作成して、各間隔にどの値が入るかを確認します。 hist(dataset, breaks = 10)がうまくいくと思いましたが、代わりに12の間隔に分割しています。私は明らかにbreaksの機能を誤解しています。

ヒストグラムでデータを10の間隔に分割する場合、どうすればよいですか。ありがとうございました。

4
Bobby

documentation のように、breaks引数に単一の数値を指定すると、 pretty ブレークポイントが提供されるため、これは提案として扱われます。等間隔の10個のビンにする場合は、おそらく次の方法が最も簡単です。

x = rnorm(50)
hist(x, breaks = seq(min(x), max(x), length.out = 11))

長さはn+1ここで、nは目的のビンの数です。

3
ClancyStats

help(hist)を読むと、この説明が見つかります。

休憩:次のいずれか

•ヒストグラムセル間のブレークポイントを示すベクトル

•ブレークポイントのベクトルを計算する関数、

•ヒストグラムのセル数を示す単一の数値、

•セルの数を計算するアルゴリズムを指定する文字列(「詳細」を参照)

•セルの数を計算する関数。

最後の3つのケースでは、数値は単なる提案です。ブレークポイントは「かなり」の値に設定されるため、数値は「1e6」に制限されます(大きい場合は警告が表示されます)。 「breaks」が関数の場合、「x」ベクトルが唯一の引数としてそれに提供されます(そして、ブレークの数は制限されます

そのため、ヘルプでは、関数に数値を指定すると、それは提案としてのみ使用されると明確に述べています。

考えられる解決策の1つは、ブレークポイントを自分で指定することです。

x <- rnorm(296)
hist(x, breaks=c(-4,-3,-2,-1,0,1,2,3,4,5))

そうしたくないが、代わりにビンの数を指定したい場合は、cut関数を使用できます。

plot(cut(x, 10))