[R] Find the three best values in every row
Patrick Hausmann
patrick.hausmann at uni-bremen.de
Fri May 7 18:23:57 CEST 2010
Hello Alfred,
I found the solution from S. Ellison
(https://stat.ethz.ch/pipermail/r-help/2010-May/238158.html) really
inspiring.
Here I am using tail and the library 'plyr':
set.seed(17*11)
d<-data.frame(africa=sample(50, 10),
europe= sample(50, 10),
n.america= sample(50, 10),
s.america= sample(50, 10),
antarctica= sample((1:50)/20, 10)
)
# using tail
t(apply(d, 1, function(x, n) tail(sort(x), n), n=3))
lapply(split(d, rownames(d)), function(x, n) sort(x)[n:ncol(x)], n=3)
# with plyr from Hadley Wickham
library(plyr)
ldply(split(d, rownames(d)), function(x, n) sort(x)[n : ncol(x)], n=3)
HTH
Patrick
Am 07.05.2010 15:43, schrieb Alfred Schulze:
>
> Hello,
>
> i have a dataframe with the GDP for different Country (in the columns) and
> Years (in the rows).
>
> Now i want for every year the best three values, if possible with name of
> the countries (columnnames).
>
> For the best it's no problem but for the other two values.
>
> Thanks,
>
> Alfred
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list