[R] Remove
Ek Esawi
esawiek at gmail.com
Sat Dec 9 18:21:44 CET 2017
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 <ruipbarradas at 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 <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/posti
>>>>>> ng-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/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 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/posti
>> ng-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/posti
> ng-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
[[alternative HTML version deleted]]
More information about the R-help
mailing list