2012-01-13 5 views
2

におけるヒストグラムビンのインデックスは私の問題です取得:ここでR

どのように私は数が落下したヒストグラムビンのインデックスを見つけることができますか?

解決策は簡単です。 HISTCは仕事をします:

[counts,bin] = histc(data,edges) 

"bin"は私が探しているものです。

私はRで働いていますが、Rのhistの機能は機能性を提案していません。私はいくつかのコード行(min<のようなものをいくつか使っています)で管理できると思いますが、私はそれを多くの数値に対して行う必要があるので、より洗練されたソリューションを探したいと思います。

私はRで経験が豊富ではないので、別の方法で問題に取り組むトリッキーな解決策が存在することを望みます。

答えて

7

hist関数は、ビンをまだ持っていない場合は、ビン間のブレークポイントを返します。あなたは、あなたのポイントのそれぞれがに属する間隔/ binに見つけることfindInterval機能を使用することができます。

> tmp <- hist(iris$Petal.Width) 
> findInterval(iris$Petal.Width, tmp$breaks) 
    [1] 2 2 2 2 2 3 2 2 2 1 2 2 1 1 2 3 3 2 2 2 2 3 2 3 2 
[26] 2 3 2 2 2 2 3 1 2 2 2 2 1 2 2 2 2 2 4 3 2 2 2 2 2 
[51] 7 8 8 7 8 7 9 6 7 7 6 8 6 7 7 7 8 6 8 6 10 7 8 7 7 
[76] 7 7 9 8 6 6 6 7 9 8 9 8 7 7 7 7 7 7 6 7 7 7 7 6 7 
[101] 13 10 11 10 12 11 9 10 10 13 11 10 11 11 13 12 10 12 12 8 12 11 11 10 11 
[126] 10 10 10 11 9 10 11 12 8 7 12 13 10 10 11 13 12 10 12 13 12 10 11 12 10 
> tmp2 <- .Last.value 
> cbind(value=iris$Petal.Width, lower=tmp$breaks[tmp2], upper=tmp$breaks[tmp2+1]) 
     value lower upper 
    [1,] 0.2 0.2 0.4 
    [2,] 0.2 0.2 0.4 
    [3,] 0.2 0.2 0.4 
    [4,] 0.2 0.2 0.4 
    [5,] 0.2 0.2 0.4 
    [6,] 0.4 0.4 0.6 
    [7,] 0.3 0.2 0.4 
    [8,] 0.2 0.2 0.4 
    [9,] 0.2 0.2 0.4 
[10,] 0.1 0.0 0.2 
+0

findIntervalは、私がまさに必要おかげでたくさんです! – fstevens