Thank you All !! Now, I have plenty of options to chose.
On Sat, Dec 9, 2017 at 1:21 PM, William Dunlap <wdun...@tibco.com> wrote: > You could make numeric vectors, named by the group identifier, of the > contraints > and subscript it by group name: > >> 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) >> >> GRmin <- c(A=15, B=40, C=60) >> GRmax <- c(A=30, B=50, C=75) >> subset(DM, x>=GRmin[GR] & x <=GRmax[GR]) > 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 > > Or, if you want to completely avoid non-standard evaluation: >> DM[ DM$x >= GRmin[DM$GR] & DM$x <= GRmax[DM$GR], ] > 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 > > > > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > On Sat, Dec 9, 2017 at 9:38 AM, David Winsemius <dwinsem...@comcast.net> > wrote: >> >> >> > On Dec 8, 2017, at 6:16 PM, David Winsemius <dwinsem...@comcast.net> >> > wrote: >> > >> > >> >> On Dec 8, 2017, at 4:48 PM, Ashta <sewa...@gmail.com> 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. >> > >> > When you have a problem where there are multiple "parallel: parameters, >> > the function to "reach for" is `mapply`. >> > >> > mapply( your_selection_func, group_vec, min_vec, max_vec) >> > >> > ... and this will probably return the values as a list (of dataframes if >> > you build the function correctly, so you may may need to then do: >> > >> > do.call(rbind, ...) >> >> do.call( rbind, >> mapply( function(dat, grp, minx, maxx) {dat[ dat$GR==grp & dat$x >= >> minx & dat$x <= maxx, ]}, >> grp=LETTERS[1:3], minx=c(15,40,60), maxx=c(30,50,75) , >> MoreArgs=list(dat=DM), >> IMPLIFY=FALSE)) >> GR x y >> A.1 A 25 125 >> A.2 A 23 135 >> B.5 B 45 321 >> B.6 B 47 512 >> C.9 C 61 521 >> C.10 C 68 235 >> >> > >> > -- >> > David. >> >> >> >> >> >> 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/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/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 >> >>> >> >>> >> >>> >> >>> >> >>> >> > >> > 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. >> >> 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/posting-guide.html and provide commented, minimal, self-contained, reproducible code.