2013-12-16 21 views
5

możesz mi pomóc, proszę, jak prawidłowo używać funkcji agregującej w R? mam danych tak:Jak korzystać z funkcji agregacji w R

SPORT FLOWS 
[1,] "Other" "1" 
[2,] "Other" "1" 
[3,] "Other" "1" 
[4,] "Other" "1" 
[5,] "Other2" "1" 
[6,] "Other2" "1" 

I muszę uzyskać to:

SPORT FLOWS 
[1,] "Other" "4" 
[2,] "Other2" "2" 

Uważam, że można to zrobić z funkcji zbiorczej, ale to nie działa ..

Dziękuję chłopaki .. mam zaznaczone odpowiedź, która pracowała dla mnie ..

+1

Twój największy problem polega na tym, że 'FLOWS' jest typu' character' –

+0

Możesz również być zainteresowany pakietem plyr do zwijania danych. – stanekam

Odpowiedz

4
aggregate(FLOWS ~ SPORT, dat, function(x) sum(as.numeric(x))) 

gdzie dat to nazwa twojej matrycy.

W tym przypadku funkcja is.numeric jest konieczna do przekształcenia drugiej kolumny w liczby.

1

Zakładając, że dataframe nazwie „sport_data”, myślę, że po prostu chcesz:

aggregate(sport_data, sport_data$SPORT, sum) 

Jeśli po prostu masz indywidualne liczby (wszystkie są równe 1), wówczas "tabulacja" może być prostszą opcją.

Daj nam znać, jakie błędy otrzymujesz. (Jeśli ten nie działa, lub w przyszłości, w swoim pytaniu)