2012-05-03 72 views
0

我有一個數據幀(DAT2)計數:創建在同一圖4個柱狀圖中正在重置爲0,在每一個

> 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小情節欄顯示百分比。

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

的事情是我想重置爲每個副區計數器,所以每個標籤組數據將由行的該特定標籤的總數,而不是由總來計算分割。

+0

請讓你的例子可重複性,notabely通過DAT2使用例如給我們'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

相關問題