[datatable-help] unique.data.frame should create a copy, right?

Arunkumar Srinivasan aragorn168b at gmail.com
Thu Aug 1 09:27:17 CEST 2013


Steve, 

Yes, exactly. If you dint have to subset the data.table as in your example, the equivalent operation would be to set the key of DT1 to NULL and then doing `unique` and storing it in DT2 and then setting the key back to "A" on DT1.

And it'd be nice to be able to do: `unique(DT1, usekey=FALSE)` or something like that so that we don't have to NULL and set the key of DT1. 

Arun


On Wednesday, July 31, 2013 at 8:02 PM, Steve Lianoglou wrote:

> Hi all,
> 
> On Wed, Jul 31, 2013 at 9:09 AM, Arunkumar Srinivasan
> <aragorn168b at gmail.com (mailto:aragorn168b at gmail.com)> wrote:
> > Ricardo,
> > 
> > You read my mind.. :) I was thinking of the same as well.. Whether the
> > community agrees or not would be interesting as well. It could save trouble
> > with "alloc.col" manually.
> > 
> 
> 
> It's easy enough to add -- just to be sure, the behavior required from
> the OP would be equivalent to calling unique on a data.table that has
> no key, right? For example, instead of this:
> 
> R> DT1 <- CJ(A=0:1,B=1:6,D0=0:1,D=0:1)[D>=D0]
> R> setkey(DT1,A)
> R> DT2 <- unique.data.frame(DT1[,-which(names(DT1)%in%'B'),with=FALSE])
> R> DT2[,gah:=1] # warning: I should have made a copy, apparently
> 
> You could just do:
> 
> R> DT1 <- CJ(A=0:1,B=1:6,D0=0:1,D=0:1)[D>=D0]
> R> DT2 <- unique(DT1[, -which(names(DT1)%in%'B'), with=FALSE])
> R> DT2[,gah:=1]
> 
> Right?
> 
> -steve
> 
> -- 
> Steve Lianoglou
> Computational Biologist
> Bioinformatics and Computational Biology
> Genentech
> 
> 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/datatable-help/attachments/20130801/b2356a25/attachment-0001.html>


More information about the datatable-help mailing list