2016-05-06 1 views
0

で一意のカウントを探す私はこの使用してdplyrを達成することができますどのようにこのサブクラス

> sample 
    DEPT CLASS SUBCLASS ID ITEM_SUBCLASS_COUNT 
1 1  1  1 101     2 
2 1  1  1 102     2 
3 1  1  2 103     1 
4 1  2  2 104     1 
5 2  1  1 105     2 
6 2  1  1 106     2 
7 2  2  1 107     2 
8 2  2  1 108     2 

のようになります。最終的なデータでは、この

sample <- data.frame(DEPT = c(1,1,1,1,2,2,2,2),CLASS = c(1,1,1,2,1,1,2,2),SUBCLASS= c(1,1,2,2,1,1,1,1),ID = c(101,102,103,104,105,106,107,108)) 

> sample 
    DEPT CLASS SUBCLASS ID 
1 1  1  1 101 
2 1  1  1 102 
3 1  1  2 103 
4 1  2  2 104 
5 2  1  1 105 
6 2  1  1 106 
7 2  2  1 107 
8 2  2  1 108 

のように見えるデータを持っていますか?

+2

を使用してを使用することができますかおそらく 'sample%>%group_by(DEPT、CLASS、SUBCLASS)%>%mutate(ITEM_SUBCLASS_COUNT = n())' – alistaire

答えて

1

我々はdata.table

library(data.table) 
setDT(sample)[,ITEM_SUBCLASS_COUNT := .N , .(DEPT, CLASS, SUBCLASS)] 

または何が `ITEM_SUBCLASS_COUNT`ことになっている?base R

sample$ITEM_SUBCLASS_COUNT <- with(sample, ave(seq_along(DEPT), DEPT, 
            CLASS, SUBCLASS, FUN = length)) 
+0

なぜでしょうか。 '。(DEPT、CLASS、SUBCLASS)'の前に 'list'ではなくそれがありますか? – PoGibas

+1

@Pgibasはい、そうです。それは 'list'コマンドに取って代わるものです。 – akrun

+1

@Pgibasは興味があれば[vignettes](https://github.com/Rdatatable/data.table/wiki/Getting-started)を見ています。 – Arun