[R] extract rows based on column value in a data frame

Bert Gunter bgunter.4567 at gmail.com
Wed Dec 2 23:10:09 CET 2015


... or perhaps using rep() to do the indexing directly instead of matching:

dfrm[ ave(dfrm$v1, dfrm$v1, FUN =
function(x)rep(c(TRUE,FALSE),c(3,length(x)-3))), ]

There's probably another 6 dozen ways to do it, especially if you
access packages like data.table, plyr, etc.

Cheers,
Bert


Bert Gunter

"Data is not information. Information is not knowledge. And knowledge
is certainly not wisdom."
   -- Clifford Stoll


On Wed, Dec 2, 2015 at 12:26 PM, David Winsemius <dwinsemius at comcast.net> wrote:
>
>> On Dec 2, 2015, at 10:09 AM, Ragia Ibrahim <ragia11 at hotmail.com> wrote:
>>
>> Dear Group,
>> I have a data frame that such as
>>
>> v1   v2    v3    v4
>> 1      1      3      6
>> 1      1       5     6
>> 1       1      8     0
>> 1       2      6     1
>> 1       2      4     0
>> 1       3      4      4
>> 1       3      5      4
>> 1       3      6      3
>> 1       3      7      1
>>
>> 2       4      3      7
>> 2       5       5     4
>> 2       5      8     2
>> 2       1      6     1
>> 2       1      4     0
>> 2      1      4      3
>> 2       1      5      2
>> 3       1      6      1
>> 3       6      7      0
>>
>> 3      6       3      6
>> 3      6       5      6
>> 3      6       8      0
>> 3      6       6      1
>> 3      2       4      0
>> 3      2       4      4
>> 3      2       5      4
>> 3      2       6      3
>> 3      2       7      1
>> 3       5       9      5
>> 3       6       9       5
>>
>>
>> the result required is each first 3 rows,  from distinct v2 column for each v1 column
>>
>>
>> v1   v2    v3    v4
>> 1      1      3      6
>> 1       2      6     1
>> 1       3      4      4
>> 2       4      3      7
>> 2       5       5     4
>> 2       1      6     1
>> 3      6       3      6
>> 3      2       4      0
>> 3       5       9      5
>
>
> Probably something along the lines of
>
> dfrm[ ave(dfrm$v1, dfrm$v1, FUN=seq_along) %in% 1:3 , ]
>
>
>>
>>
>> thanks in advance
>>       [[alternative HTML version deleted]]
>
> Future postings should be in plain text.
>
>>
> David Winsemius
> Alameda, CA, USA
>
> ______________________________________________
> 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.



More information about the R-help mailing list