HI-- How about this one. It produces the desired result. If you have more conditions, you can put them in a matrix/DF form and subset as suggested by one of the previous suggestion.
DM[(DM$GR=="A"&DM$x>=15&DM$x<=30)|(DM$GR=="B"&DM$x>=40&DM$x<=50)|(DM $GR=="C"&DM$x>=60&DM$x<=70),] EK On Sat, Dec 9, 2017 at 5:00 AM, Rui Barradas <ruipbarra...@sapo.pt> wrote: > Hello, > > Try the following. > > keep <- list(A = c(15, 30), B = c(40, 50), C = c(60, 75)) > sp <- split(DM$x, DM$GR) > inx <- unlist(lapply(seq_along(sp), function(i) keep[[i]][1] <= sp[[i]] & > sp[[i]] <= keep[[i]][2])) > DM[inx, ] > # GR x y > #1 A 25 125 > #2 A 23 135 > #5 B 45 321 > #6 B 47 512 > #9 C 61 521 > #10 C 68 235 > > Hope this helps, > > Rui Barradas > > > On 12/9/2017 12:48 AM, Ashta wrote: > >> Hi David, Ista and all, >> >> I have one related question Within one group I want to keep records >> conditionally. >> example within >> group A I want keep rows that have " x" values ranged between 15 and >> 30. >> group B I want keep rows that have " x" values ranged between 40 and >> 50. >> group C I want keep rows that have " x" values ranged between 60 and >> 75. >> >> >> DM <- read.table( text='GR x y >> A 25 125 >> A 23 135 >> A 14 145 >> A 35 230 >> B 45 321 >> B 47 512 >> B 53 123 >> B 55 451 >> C 61 521 >> C 68 235 >> C 85 258 >> C 80 654',header = TRUE, stringsAsFactors = FALSE) >> >> >> The end result will be >> A 25 125 >> A 23 135 >> B 45 321 >> B 47 512 >> C 61 521 >> C 68 235 >> >> Thank you >> >> On Wed, Dec 6, 2017 at 10:34 PM, David Winsemius <dwinsem...@comcast.net> >> wrote: >> >>> >>> On Dec 6, 2017, at 4:27 PM, Ashta <sewa...@gmail.com> wrote: >>>> >>>> Thank you Ista! Worked fine. >>>> >>> >>> Here's another (possibly more direct in its logic?): >>> >>> DM[ !ave(DM$x, DM$GR, FUN= function(x) {!length(unique(x))==1}), ] >>> GR x y >>> 5 B 25 321 >>> 6 B 25 512 >>> 7 B 25 123 >>> 8 B 25 451 >>> >>> -- >>> David >>> >>> On Wed, Dec 6, 2017 at 5:59 PM, Ista Zahn <istaz...@gmail.com> wrote: >>>> >>>>> Hi Ashta, >>>>> >>>>> There are many ways to do it. Here is one: >>>>> >>>>> vars <- sapply(split(DM$x, DM$GR), var) >>>>> DM[DM$GR %in% names(vars[vars > 0]), ] >>>>> >>>>> Best >>>>> Ista >>>>> >>>>> On Wed, Dec 6, 2017 at 6:58 PM, Ashta <sewa...@gmail.com> wrote: >>>>> >>>>>> Thank you Jeff, >>>>>> >>>>>> subset( DM, "B" != x ), this works if I know the group only. >>>>>> But if I don't know that group in this case "B", how do I identify >>>>>> group(s) that all elements of x have the same value? >>>>>> >>>>>> On Wed, Dec 6, 2017 at 5:48 PM, Jeff Newmiller < >>>>>> jdnew...@dcn.davis.ca.us> wrote: >>>>>> >>>>>>> subset( DM, "B" != x ) >>>>>>> >>>>>>> This is covered in the Introduction to R document that comes with R. >>>>>>> -- >>>>>>> Sent from my phone. Please excuse my brevity. >>>>>>> >>>>>>> On December 6, 2017 3:21:12 PM PST, David Winsemius < >>>>>>> dwinsem...@comcast.net> wrote: >>>>>>> >>>>>>>> >>>>>>>> On Dec 6, 2017, at 3:15 PM, Ashta <sewa...@gmail.com> wrote: >>>>>>>>> >>>>>>>>> Hi all, >>>>>>>>> In a data set I have group(GR) and two variables x and y. I want >>>>>>>>> to >>>>>>>>> remove a group that have the same record for the x variable in >>>>>>>>> each >>>>>>>>> row. >>>>>>>>> >>>>>>>>> DM <- read.table( text='GR x y >>>>>>>>> A 25 125 >>>>>>>>> A 23 135 >>>>>>>>> A 14 145 >>>>>>>>> A 12 230 >>>>>>>>> B 25 321 >>>>>>>>> B 25 512 >>>>>>>>> B 25 123 >>>>>>>>> B 25 451 >>>>>>>>> C 11 521 >>>>>>>>> C 14 235 >>>>>>>>> C 15 258 >>>>>>>>> C 10 654',header = TRUE, stringsAsFactors = FALSE) >>>>>>>>> >>>>>>>>> In this example the output should contain group A and C as group B >>>>>>>>> has the same record for the variable x . >>>>>>>>> >>>>>>>>> The result will be >>>>>>>>> A 25 125 >>>>>>>>> A 23 135 >>>>>>>>> A 14 145 >>>>>>>>> A 12 230 >>>>>>>>> C 11 521 >>>>>>>>> C 14 235 >>>>>>>>> C 15 258 >>>>>>>>> C 10 654 >>>>>>>>> >>>>>>>> >>>>>>>> Try: >>>>>>>> >>>>>>>> DM[ !duplicated(DM$x) , ] >>>>>>>> >>>>>>>>> >>>>>>>>> How do I do it R? >>>>>>>>> Thank you. >>>>>>>>> >>>>>>>>> ______________________________________________ >>>>>>>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>>>>>>> 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 >>>>>>>> Alameda, CA, USA >>>>>>>> >>>>>>>> 'Any technology distinguishable from magic is insufficiently >>>>>>>> advanced.' >>>>>>>> -Gehm's Corollary to Clarke's Third Law >>>>>>>> >>>>>>>> ______________________________________________ >>>>>>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>>>>>> 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. >>>>>>>> >>>>>>> >>>>>> ______________________________________________ >>>>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>>>> PLEASE do read the posting guide http://www.R-project.org/posti >>>>>> ng-guide.html >>>>>> and provide commented, minimal, self-contained, reproducible code. >>>>>> >>>>> >>>> ______________________________________________ >>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>> PLEASE do read the posting guide http://www.R-project.org/posti >>>> ng-guide.html >>>> and provide commented, minimal, self-contained, reproducible code. >>>> >>> >>> David Winsemius >>> Alameda, CA, USA >>> >>> 'Any technology distinguishable from magic is insufficiently advanced.' >>> -Gehm's Corollary to Clarke's Third Law >>> >>> >>> >>> >>> >>> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posti >> ng-guide.html >> and provide commented, minimal, self-contained, reproducible code. >> >> > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posti > ng-guide.html > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.