> On Dec 6, 2017, at 4:27 PM, Ashta <sewashm at 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 <istazahn at 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 <sewashm at 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 <jdnewmil at 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 <dwinsemius at comcast.net> wrote: >>>>> >>>>>> On Dec 6, 2017, at 3:15 PM, Ashta <sewashm at 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 at 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 at 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 at 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 at 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
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 <dwinsemius at comcast.net> wrote:> >> On Dec 6, 2017, at 4:27 PM, Ashta <sewashm at 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 <istazahn at 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 <sewashm at 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 <jdnewmil at 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 <dwinsemius at comcast.net> wrote: >>>>>> >>>>>>> On Dec 6, 2017, at 3:15 PM, Ashta <sewashm at 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 at 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 at 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 at 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 at 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 > > > > >
> On Dec 8, 2017, at 4:48 PM, Ashta <sewashm at 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, ...) -- 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 <dwinsemius at comcast.net> wrote: >> >>> On Dec 6, 2017, at 4:27 PM, Ashta <sewashm at 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 <istazahn at 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 <sewashm at 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 <jdnewmil at 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 <dwinsemius at comcast.net> wrote: >>>>>>> >>>>>>>> On Dec 6, 2017, at 3:15 PM, Ashta <sewashm at 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 at 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 at 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 at 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 at 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
library(dplyr) DM <- read.table( text='GR x y A 25 125 A 23 135 . . . ) DM %>% filter((GR == "A" & (x >= 15) & (x <= 30)) | (GR == "B" & (x >= 40) & (x <= 50)) | (GR == "C" & (x >= 60) & (x <= 75))) On Fri, Dec 8, 2017 at 4:48 PM, Ashta <sewashm at 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. > > > 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 <dwinsemius at comcast.net> wrote: >> >>> On Dec 6, 2017, at 4:27 PM, Ashta <sewashm at 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 <istazahn at 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 <sewashm at 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 <jdnewmil at 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 <dwinsemius at comcast.net> wrote: >>>>>>> >>>>>>>> On Dec 6, 2017, at 3:15 PM, Ashta <sewashm at 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 at 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 at 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 at 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 at 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 at 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.
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 <dwinsemius at comcast.net> wrote: >> >>> On Dec 6, 2017, at 4:27 PM, Ashta <sewashm at 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 <istazahn at 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 <sewashm at 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 <jdnewmil at 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 <dwinsemius at comcast.net> wrote: >>>>>>> >>>>>>>> On Dec 6, 2017, at 3:15 PM, Ashta <sewashm at 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 at 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 at 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 at 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 at 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 at 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. >