2016-02-06 26 views
2

隨着下面的可再生的數據內發生,計數的次數的數目(因子)每組

dat <- data.frame(Bin = rep(1:4, each = 50), 
        Number = sample(5, 200, replace = T, prob = c(1,1,1,2,3))) 

> head(dat) 
    Bin Number 
1 1  3 
2 1  5 
3 1  4 
4 1  5 
5 1  5 
6 1  1 

我要計數的時間,優選地使用dplyr.說不同數量發生的每個Bin內的每個Number ,每個Bin的每個級別Number有多少次出現?

謝謝!

+2

爲什麼不使用'table'? – user20650

回答

4

dplyr有一個計數功能,正是這一點。

dat %>% count(Number,Bin) 
3

還不如在這裏扔data.table答案,以及:

setDT(dat)[ , .N, keyby = .(Number, Bin)] 

而作爲user20650指出,base R有一個非常簡單的解決辦法:

with(dat, table(Number, Bin)) 

只是取決於你的首選的輸出格式。

+0

甚至shorrter'table(dat)'或'as.data.frame(table(dat))' – user20650

+0

@ user20650是的,我假設實際表中有其他列,但是這個例子適用。這種方法也更加靈活(如果OP想要切換行和列,例如) – MichaelChirico