[R] R help..subsetting data frame that meeting multiple criteria

David Winsemius dwinsemius at comcast.net
Sat Nov 24 07:20:11 CET 2012


On Nov 23, 2012, at 6:32 PM, arun wrote:

> Hi David,
> Tried the solution on a slightly different data:
> dat <- read.table(text="
> value class percent
> 15526 36 4.6875
> 15527 62 85.9375
> 15527 82 32.4564
> 15528 36 70.3125
> 15528 62 9.375
> 15528 82 74.6875
> 15529 72 50.0000
> 15530 72 50.0000
> ", header = TRUE)
> dat.a <- dat[ dat[["class"]] %in% dat[ dat[["percent"]] >70,  
> "class"] , ]
>  row.names(dat.a) <- unlist(tapply(dat.a$class, dat.a$class,  
> function(x) paste0(x, letters[1:length(x)])))
>  dat.a
> #    value class percent
> #36a 15526    36  4.6875
> #36b 15527    62 85.9375
> #62a 15527    82 32.4564
> #62b 15528    36 70.3125
> #82a 15528    62  9.3750
> #82b 15528    82 74.6875
>

Great. Seems to be working as requested. Er, .... What's your point?

-- 
David.

> ----- Original Message -----
> From: David Winsemius <dwinsemius at comcast.net>
> To: prasmas <prasad4rr at gmail.com>
> Cc: r-help at r-project.org
> Sent: Friday, November 23, 2012 7:40 PM
> Subject: Re: [R] R help..subsetting data frame that meeting multiple  
> criteria
>
>
> On Nov 23, 2012, at 1:14 PM, prasmas wrote:
>
>> Hi,
>> I am new to R.  I am trying to regroup data frame using multiple  
>> constrains.
>> for example
>>
>> data frame: data
>>   value    class    percent
>> 15526    36    4.6875
>> 15527    62    85.9375
>> 15527    82    32.4564
>> 15528    36    70.3125
>> 15528    62    9.375
>> 15528    82    74.6875
>>
>> I need to regroup each class that have greater than or equal to 70  
>> percent
>> into new group. Similarly, I also need to regroup each class that  
>> have less
>> than 70 percent into new group.
>>
>> I can do this by using following syntax for each class
>> class36<- data[data$class==36&data$percent>70,]
>> class36a<- data[data$class==36&data$percent<=70,]
>> but I have 100 different classes. In order to do this for all 100  
>> classes, I
>> have write that syntax 100 times. There would be some way to do  
>> dynamically
>> to regroup for 100 classes (may be using for loop) but I dont know.  
>> Can you
>> please help in this.
>> Output should be like
>> data frame: class36
>> value    class    percent
>> 15528    36    70.3125
>>
>> data frame: class36a
>> value    class    percent
>> 15526    36    4.6875
>>
>> dat.a <- dat[ dat[["class"]] %in% dat[ dat[["percent"]] >70,  
>> "class"] , ]
>> dat.a
>   value class percent
> 1 15526    36  4.6875
> 2 15527    62 85.9375
> 3 15527    82 32.4564
> 4 15528    36 70.3125
> 5 15528    62  9.3750
> 6 15528    82 74.6875
>
>> row.names(dat.a) <- unlist(tapply(dat.a$class, dat.a$class,  
>> function(x) paste0(x, letters[1:length(x)])))
>> dat.a
>     value class percent
> 36a 15526    36  4.6875
> 36b 15527    62 85.9375
> 62a 15527    82 32.4564
> 62b 15528    36 70.3125
> 82a 15528    62  9.3750
> 82b 15528    82 74.6875
>
> You can split by the NROW of dat.a if you want.
>
> --David.
>>
>> data frame: class62
>> 15527    62    85.9375
>>
>> data frame: class62a
>> 15528    62    9.375
>>
>> data frame: class82
>> 15528    82    74.6875
>>
>> data frame: class82a
>> 15527    82    32.4564
>>
>> Thank you very much your help..
>> P.
>>
>>
>>
>> --
>> View this message in context: http://r.789695.n4.nabble.com/R-help-subsetting-data-frame-that-meeting-multiple-criteria-tp4650601.html
>> Sent from the R help mailing list archive at Nabble.com.
>>
>> ______________________________________________
>> 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.
>
> David Winsemius, MD
> Alameda, CA, USA
>
> ______________________________________________
> 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.
>

David Winsemius, MD
Alameda, CA, USA




More information about the R-help mailing list