web-dev-qa-db-ja.com

加重値のヒストグラムを作成する

ベクトル(v<-runif(1000)など)がある場合は、そのヒストグラムをプロットできます(vは一様分布のサンプルであるため、多かれ少なかれ水平線として表示されます)。

ただし、ベクトルとそれに関連する重みがあるとします(たとえば、w<-seq(1,1000)に加えてv<-sort(runif(1000)))。たとえば、これははるかに大きなデータセットに対するtable()の結果です。

新しいヒストグラムをプロットするにはどうすればよいですか? (この例では、y=x行のように見えるはずです)。

tablehist(rep(v,w)))を使用すると、repの効果を元に戻すことができると思いますが、この「解決策」は醜く、リソースが多いようです(サイズsum(w))、整数の重みのみをサポートします。

16
sds

パッケージplotrix には関数weighted.histがあり、これはあなたが望むことをします:

w<-seq(1,1000)
v<-sort(runif(1000))
weighted.hist(v, w)

Example of <code>weighted.hist</code>

13
musically_ut
library(ggplot2)
w <- seq(1,1000)
v <- sort(runif(1000))

foo <- data.frame(v, w)

ggplot(foo, aes(v, weight = w)) + geom_histogram()

enter image description here

29
Jake Burkhead

weightsパッケージの代替はwtd.hist()です。

w<-seq(1,1000) v<-sort(runif(1000)) wtd.hist(x=v,weight=w) - enter image description here

4
dpel