Подтвердить что ты не робот

Ошибка удаления столбца факторов в пустой таблице данных.

Если у меня есть пустой файл 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), но его можно так же легко воспроизвести, создав его напрямую.

4b9b3361

Ответ 1

Спасибо за отчетность. Теперь исправлено в версии 1.8.9

Удаление столбца фактора (0 длины) с использованием: = NULL на пустом Таблица данных        теперь работает, # 4809. Спасибо Фрэнку Пинтеру за сообщение. Добавлен тест.