2012-06-11 5 views
0

I ont une data.frame comme ceci:trame de données Conversion de fréquences redondantes

category count 
A  11 
B  1 
C  45 
A  1003 
D  20 
B  207 
E  634 
E  40 
A  42 
A  7 
B  44 
B  12 

Chaque ligne représente un élément spécifique à un type de catégorie et un nombre de cet élément. Je voudrais produire une distribution de fréquence de comptes par catégorie, mais les catégories sont pour le moment redondantes.

Comment puis-je récupérer un tableau des comptes de catégories redondantes? Je veux dire une table qui ressemble à:

category count 
A  11234 
B  4005 
C  100023 
D  65567 
E  54654 
...  ... 

Je suis arrivé presque à l'aide lapply:

df.nrcounts <- lapply(unique(df.counts$category), 
    function(x) c(category=x, count=sum(subset(df.counts, category==x)$count))) 

mais je ne peux pas sembler forcer la sortie à une trame de données appropriée. Je n'arrive pas à comprendre comment utiliser cette fonction.

Répondre

2
aggregate(df.counts$count,by=list(df.counts$category),FUN=sum) 

Ou

library(data.table) 
setDT(df.counts)[, list(count=sum(count)), by = category] 
+0

Merci! Je n'étais pas au courant de 'aggregate'. – MattLBeck

Questions connexes