[datatable-help] Crash when assigning column.
Matthew Dowle
mdowle at mdowle.plus.com
Wed Jan 23 07:56:31 CET 2013
Hi,
Yes that warning was because Ricky supplied the output of dput to
create the example data, which uses structure(). Creating a data.table
that way doesn't initialize the .internal.selfref. I usually just
replace the structure() with a data.table() call when pasting code like
that.
Have now improved that warning :
" ... At an earlier point, this data.table has been copied by R (or
been created manually using structure() or similar). Avoid ..."
and the result looks correct to me in v1.8.7.
Thanks,
Matthew
On 21.01.2013 19:42, statquant3 wrote:
> As Matthew is saying, I am using v.1.8.7 (lattest release)
> I get a warning:
>
> R> test.dt[, tc := which(name==order), by=list(ID, name)]
> Warning message:
> In `[.data.table`(test.dt, , `:=`(tc, which(name == order)), by =
> list(ID,
> :
> Invalid .internal.selfref detected and fixed by taking a copy of
> the whole
> table, so that := can add this new column by reference. At an earlier
> point,
> this data.table has been copied by R. Avoid key<-, names<- and attr<-
> which
> in R currently (and oddly) may copy the whole data.table. Use set*
> syntax
> instead to avoid copying: setkey(), setnames() and setattr(). Also,
> list(DT1,DT2) will copy the entire DT1 and DT2 (R's list() copies
> named
> objects), use reflist() instead if needed (to be implemented). If
> this
> message doesn't help, please report to datatable-help so the root
> cause can
> be fixed.
>
>
>
>
> --
> View this message in context:
>
> http://r.789695.n4.nabble.com/Crash-when-assigning-column-tp4656168p4656197.html
> Sent from the datatable-help mailing list archive at Nabble.com.
> _______________________________________________
> datatable-help mailing list
> datatable-help at lists.r-forge.r-project.org
>
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
More information about the datatable-help
mailing list