从数据中删除多列的正确方法是什么.桌子我目前正在使用下面的代码,但当我不小心重复了其中一个列名时,出现了意外行为.我不确定这是一个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"

推荐答案

这看起来像一个可靠的、可复制的错误.它被列为Bug #2791.

似乎重复该列会try 删除后续列


UPDATE:现在已在v1中修复.8.11. 从NEWS开始:

在同一个查询中两次分配给同一列在某些情况下是错误的,而不是崩溃;e、 g.,DT[,c("B","B"):=NULL](通过引用删除同一列两次).感谢里卡多(#2751)和马特·k(#2791)的报道.增加了测试.

R相关问答推荐

确定邻国

R图中的字体大小和字体样式(带有R底图)

按条件计算观察次数

在R中使用GG Plot时如何 suppress 等值线图中的彩色条

self_函数无法工作--无法子集结束后的列

混淆矩阵,其中每列和等于1

计算R中的威布尔分布的EDF

如何将在HW上运行的R中的消息(错误、警告等)作为批处理任务输出

如何使用按钮切换轨迹?

为什么横向页面会导致officeverse中的页码/节头/页脚出现问题?

将非重复序列高效转换为长格式

如何写一个R函数来旋转最后n分钟?

Ggplot2中的重复注记

如何提取所有完美匹配的10个核苷酸在一个成对的匹配与生物字符串在R?>

Select 季度月值

列名具有特殊字符时的循环回归

'使用`purrr::pwalk`从嵌套的嵌套框架中的列表列保存ggplots时出现未使用的参数错误

如何计算增加10米(0.01公里)的行?

R中时间间隔的大向量与参考时间间隔的相交

当由base::限定时,`[.factor`引发NextMethod错误