... and I added a comment and link back to this thread, to this FR : https://r-forge.r-project.org/tracker/index.php?func=detail&aid=1006&group_id=240&atid=978 setkey doesn't retain user attributes because it (currently) copies the data.table, something we'd like to improve anyway. Matthew
On Wed, 2011-06-08 at 22:34 -0400, Steve Lianoglou wrote: > Hi, > > On Wed, Jun 8, 2011 at 7:01 PM, Thell Fowler <[email protected]> wrote: > > > > It looks like custom attributes are lost by a DF to DT creation, and when > > the key info for a DT is invalidated, altered, etc... I ran into this when > > trying to attach some attribute info to a table that identifies column > > groups so that a new global variable or passing another param to functions > > wouldn't be needed. This worked nicely, until I had need to either modify > > some data in the table, which invalidates the key... > > > > Was this a design decision? If so, why? > > Try `as.data.table` for a more "delicate" way to convert a data.frame > to a data.table. Your attributes will come through to the other side. > > R> df <- data.frame( id=c(1:5), name= letters[1:5] ) > R> attr(df, 'testing') <- 'keep me' > R> dt <- as.data.table(df) > R> attr(dt, 'testing') > [1] "keep me" > > -steve > > > > > Example:: > > > > > df <- data.frame( id=c(1:5), name= letters[1:5] ) > > > > > attr(df, 'testing') <- 'keep me' > > > > > attr(df, 'testing') > > [1] "keep me" > > > > > dt <- data.table( df ) > > > attr(dt, 'testing') > > > > NULL > > > attr(dt, 'testing') <- 'keep me' > > > > > attr(dt, 'testing') > > [1] "keep me" > > > > > df[ 5 , 'id' ] <- 53 > > > dt[ 5 , 'id' ] <- 53 > > > > > attr(df, 'testing') > > [1] "keep me" > > > > > attr(dt, 'testing') > > [1] "keep me" > > > > > setkey(dt) > > > attr(dt, 'testing') > > > > NULL > > > attr(dt, 'testing') <- 'keep me' > > > > > attr(dt, 'testing') > > [1] "keep me" > > > > > dt[ 5 , 'id' ] <- 3 > > > attr(dt, 'testing') > > > > [1] "keep me" > > > key(dt) > > NULL > > > > > > > -- > > Sincerely, > > Thell > > > > _______________________________________________ > > datatable-help mailing list > > [email protected] > > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help > > > > > > -- > Steve Lianoglou > Graduate Student: Computational Systems Biology > | Memorial Sloan-Kettering Cancer Center > | Weill Medical College of Cornell University > Contact Info: http://cbio.mskcc.org/~lianos/contact > _______________________________________________ > datatable-help mailing list > [email protected] > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help _______________________________________________ datatable-help mailing list [email protected] https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
