如果我有一个带有因子列的空 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 的问题,但我做错了什么吗?
编辑:上一个示例使用 join 创建空的 data.table(然后称为join
),但可以通过直接创建它来轻松复制它。