[R] Select top three values from data frame

Mohamed Lajnef Mohamed.lajnef at inserm.fr
Wed Aug 26 12:25:29 CEST 2009


Noah Silverman a écrit :
> I only have a few values in my example, but the real data set might have 
> 20-100 rows with A="X".  So how do I pick just the three highest ones?
>
> -N
>
>   
Hi,

and now?

df.mydata$B[order(df.mydata[df.mydata$A=="X" AND df.mydata$C < 2, ]$B)][length(df.mydata$B)-3:length(df.mydata$B)]


cheers,
ML





> On 8/26/09 2:46 AM, Ottorino-Luca Pantani wrote:
>   
>> df.mydata[df.mydata$A=="X" AND df.mydata$C < 2, ]
>> will do the job ?
>>
>> 8rino
>>
>> Noah Silverman ha scritto:
>>     
>>> Hi,
>>>
>>> I'm trying to find an easy way to do this.
>>>
>>> I want to select the top three values of a specific column in a 
>>> subset of rows in a data.frame.  I'll demonstrate.
>>>
>>> A    B    C
>>> x    2    1
>>> x    4    1
>>> x    3    2
>>> y    1    5
>>> y    2    6
>>> y    3    8
>>>
>>>
>>> I want the top 3 values of B from the data.frame where A=X and C <2
>>>
>>> I could extract all the rows where C<2, then sort by B, then take the 
>>> first 3.  But that seems like the wrong way around, and it also will 
>>> get messy with real data of over 100 columns.
>>>
>>> Any suggestions?
>>>
>>>       
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>
>   


-- 
Mohamed Lajnef
INSERM Unité 955. 
40 rue de Mesly. 94000 Créteil.
Courriel : Mohamed.lajnef at inserm.fr 
tel. : 01 49 81 31 31 (poste 18470)
Sec : 01 49 81 32 90
fax : 01 49 81 30 99 




More information about the R-help mailing list