[R] Find the three best values in every row
S Ellison
S.Ellison at lgc.co.uk
Fri May 7 16:44:08 CEST 2010
Hmm...
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)
)
#Get three top from each row
t(apply(d,1,function(x,n) x[which(rank(x)> length(x)-n)], n=3))
#Get them with names
get.n<- function(x, names, n) {
rmin<-
rv<-x[w<-which(rank(x)> length(x)-n)]
names(rv)<-names[w]
return(as.data.frame(rv))
}
apply(d,1,get.n, n=3, names=names(d))
>>> Alfred Schulze <Alfred-Schulze at web.de> 05/07/10 2:43 PM >>>
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.
*******************************************************************
This email and any attachments are confidential. Any use...{{dropped:8}}
More information about the R-help
mailing list