Question

can you help me please how to properly use aggregate function in R? I have data like this:

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

And I need to get this:

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

I found, that it can be done with aggregate function, but it doesn't work..

Thank you guys.. I have marked answer which worked for me..

Was it helpful?

Solution

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

where dat is the name of your matrix.

Here, the function is.numeric is necessary to transform the second column into numbers.

OTHER TIPS

Assuming your dataframe is named "sport_data", I think you just want:

aggregate(sport_data, sport_data$SPORT, sum)

If you just have individual counts (that are all equal to 1), then "tabulate" may be a simpler option.

Please let us know what kind of errors you are getting. (if this doesn't work, or in the future, in your question)

Try Aggregate function in r

test <- aggregate(df[,4:5] ,by=list(df$name),sum)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top