mat*_*t_k 70 r data.table
从data.table中删除多个列的正确方法是什么?我目前正在使用下面的代码,但是当我不小心重复其中一个列名时,却出现了意外行为.我不确定这是不是一个bug,或者我不应该这样删除列.
library(data.table)
DT <- data.table(x = letters, y = letters, z = letters)
DT[ ,c("x","y") := NULL]
names(DT)
[1] "z"
Run Code Online (Sandbox Code Playgroud)
以上工作正常,但是
DT <- data.table(x = letters, y = letters, z = letters)
DT[ ,c("x","x") := NULL]
names(DT)
[1] "z"
Run Code Online (Sandbox Code Playgroud)
Pan*_*hah 15
这个Q已被回答,但认为这是一个附注.
我更喜欢以下语法删除多列
DT[ ,`:=`(x = NULL, y = NULL)]
Run Code Online (Sandbox Code Playgroud)
因为它匹配一个添加多个列(变量)
DT[ ,`:=`(x = letters, y = "Male")]
Run Code Online (Sandbox Code Playgroud)
这也检查重复的列名称.因此,尝试删除x两次将抛出错误消息.