Я создал небольшие data.table DT = data.table(a=1:2, a=1:2)
.
Если я использую names(DT) <- c("b","b")
Я получаю предупреждение
In `names<-.data.table`(`*tmp*`, value = c("b", "b")) :
The names(x)<-value syntax copies the whole table. This is due to <- in R itself. Please change to setnames(x,old,new) which does not copy and is faster. See help('setnames'). You can safely ignore this warning if it is inconvenient to change right now. Setting options(warn=2) turns this warning into an error, so you can then use traceback() to find and change your names<- calls.
Но если я использую setnames(DT, names(DT), c("b","b")
, тогда я получаю ошибку
Error in setnames(DT, names(DT), c("b", "b")) :
Some duplicates exist in 'old': a
Если тот же пример используется с data.frame, чем DT = data.frame(a=1:2, a=1:2)
, и используйте names(DT) <- c("b","b")
, тогда я не получаю ошибки.