2012-05-03 8 views
0

0にカウントreseting同図の4パーセントのバープロットを作成します。は、と私はデータフレーム(DAT2)が各1

> 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) 

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

+0

DAT2例えば使用して私たちを与えることによってnotabely、再現性のあなたの例をしてくださいラベルごとの観測値の数を計算し、データセットに追加'dput'。データセット全体が大きすぎる可能性がありますので、状況を再現する小さなサブセット(〜50行)のみを含めてください。 –

答えて

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) 
+0

私の鍵は、n = nLabelが観測数であることを確認することでした。私のせい。 – biojl

関連する問題