删除空data.table中的factor列时出错

时间:2013-08-06 20:14:06

标签: r data.table

如果我有一个带有因子列的空数据表,则无法使用:= NULL运算符删除因子列。整数和字符列没有问题。

require(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),但可以通过直接创建它来轻松复制。

1 个答案:

答案 0 :(得分:1)

感谢报道。现已修复于v1.8.9

  

使用:= NULL删除(0长度)因子列   data.table          现在有效,#4809。感谢Frank Pinter的报道。测试补充。