从data.table中删除多个列的正确方法是什么?我目前正在使用下面的代码,但是当我不小心重复其中一个列名时,却出现了意外行为 . 我不确定这是不是一个bug,或者我不应该这样删除列 .
library(data.table)
DT <- data.table(x = letters, y = letters, z = letters)
DT[ ,c("x","y") := NULL]
names(DT)
[1] "z"
以上工作正常,但是
DT <- data.table(x = letters, y = letters, z = letters)
DT[ ,c("x","x") := NULL]
names(DT)
[1] "z"
2 回答
这看起来像一个可靠的,可重现的bug . 它被归档为Bug #2791 .
似乎重复该列会尝试删除后续列 .
如果没有列,则R崩溃 .
UPDATE :现已修复于v1.8.11 . 来自NEWS:
这个Q已被回答,但认为这是一个附注 .
我更喜欢以下语法删除多列
因为它匹配一个添加多个列(变量)
这也检查重复的列名称 . 因此,尝试删除
x
两次将抛出错误消息 .