Если у меня есть пустой файл data.table со столбцом фактора, столбец фактора не может быть удален с помощью оператора := NULL
. Целочисленные и символьные столбцы не имеют проблем.
library(data.table)
DT <- data.table(numbers = integer(0),
char.letters = character(0),
factor.letters = factor(character(0)))
DT[, factor.letters := NULL]
Я получаю следующую ошибку:
Error in '[.data.table'(DT, , ':='(factor.letters, NULL)) :
Can't assign to column 'factor.letters' (type 'factor') a value of type 'NULL' (not character, factor, integer or numeric)
Обратите внимание, что DT[, char.letters := NULL]
и DT[, numbers := NULL]
не выдают ошибок.
Поскольку факторные столбцы ведут себя иначе, чем символьные и целочисленные столбцы, я подозреваю, что это проблема с data.table, но я что-то делаю неправильно?
Редактировать: предыдущий пример использовал объединение для создания пустого data.table (который затем назывался join
), но его можно так же легко воспроизвести, создав его напрямую.