Hi,
 
I have to recognize that i don't fully understand the aggregate function, but i 
think it should help me with what i want to do.
 
xveg is a data.frame with location, species, and total for the species. Each 
location is repeated, once for every species present at that location. For each 
location i want to find out which species has the maximum total ... so i've 
tried different ways to do it using aggregate.
 
loc <- c(rep("L1", 3), rep("L2", 5), rep("L3", 2))
sp <- c("a", "b", "c", "a", "d", "b", "e", "c", "b", "d")
tot <- c(20, 60, 40, 15, 25, 10, 30, 20, 68, 32)
xveg <- data.frame(loc, sp, tot)
 
result desired:
 
L1   b
L2   e
L3   b
 
sp_maj <- aggregate(xveg[,2], list(xveg[,1], function(x) 
levels(x)[which.max(table(x))])
 
This is wrong because it gives the first species name in each level of 
location, so i get a, a, b, as species instead of b, e, b.
 
I've tried other few aggregate commands, all with wrong results.
 
I will appreciate any help,
 
Thanks,
 
Monica
 
_________________________________________________________________

 the go.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to