0

私はデータフレーム(dat2)を持っています:

> summary(dat2)
     combs             label                   Groups    
 Min.   :    1.00   Length:21172       (0,1]      :1573  
 1st Qu.:    4.00   Class :character   (1,5]      :5777  
 Median :    9.00   Mode  :character   (5,12]     :5632  
 Mean   :   86.46                      (12,30]    :4061  
 3rd Qu.:   24.00                      (30,100]   :2976  
 Max.   :49280.00                      (100,5e+04]:1153 

パーセンテージを示す 4 つのファセット プロット バーを作成するために、stackoverflow からいくつかのコードを既に収集しました。

ggplot(dat2,aes(x=Groups)) + 
  stat_bin(aes(n=nrow(dat2), y=..count../n)) +
  scale_y_continuous(formatter = "percent") + 
  facet_wrap(~ label)

サブプロットごとにカウンターをリセットしたいので、各ラベルグループのデータは、合計ではなく、その特定のラベルの行の総数で割って計算されます。

4

1 に答える 1

2

ラベルごとの観測数を計算し、データセットに追加します

nLabel <- 4
nGroups <- 3
nObs <- 10000
dataset <- data.frame(label = factor(sample(nLabel, nObs, prob = runif(nLabel), replace = TRUE)))
library(plyr)
dataset <- ddply(dataset, .(label), function(x){
  data.frame(Groups = sample(nGroups, nrow(x), prob = runif(nGroups), replace = TRUE))
})
dataset$nLabel <- ave(dataset$Groups, by = dataset$label, FUN = length)
dataset$Groups <- factor(dataset$Groups)
library(ggplot2)
library(scales)
ggplot(dataset, aes(x = Groups)) + geom_histogram(aes(n = nLabel, y = ..count.. / n)) + facet_wrap(~label, scales = "free") + scale_y_continuous(label = percent)
于 2012-05-03T09:55:17.923 に答える