Предупреждение: «Обнаружен неверный .internal.selfref» при добавлении столбца в таблицу data.table, возвращенную функцией

Это выглядит какfread ошибка, но я не уверен.

Этот пример воспроизводит мою проблему. У меня есть функция, где я читаю data.table и возвращаю его в списке. Я использую список для группировки других результатов в той же структуре. Вот мой код:

ff.fread <- function(){
  dt = fread("x
1
2
")
  list(dt=dt)   
}

DT.f <- ff.fread()$dt

Теперь, когда я пытаюсь добавить новый столбец в DT.f, он работает, но я получаю предупреждение:

DT.f[,y:=1:2]
Warning message:
In `[.data.table`(DT.f, , `:=`(y, 1:2)) :
  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 (or been created manually using
  structure() or similar). Avoid key<-, names<- and attr<- which in R currently
  (and oddly) may copy the whole data.table. Use set* syntax instead to avoid
  copying: ?set, ?setnames and ?setattr. Also, in R<v3.1.0, list(DT1,DT2) copied
  the entire DT1 and DT2 (R's list() used to copy named objects); please upgrade
  to R>=v3.1.0 if that is biting. If this message doesn't help, please report to
  datatable-help so the root cause can be fixed.

Обратите внимание, что если я создаю data.table вручную, у меня нет этого предупреждения. Это прекрасно работает, например:

ff <- function(){
      list(dt=data.table(x=1:2))
    }
DT <- ff()$dt
DT[,y:=1:2]

Или если я не верну результатfread в списке, это также работает нормально

ff.fread <- function(){
  dt = fread("x
1
2
")
  dt
}

Ответы на вопрос(2)

Ваш ответ на вопрос