R 通过将列设置为“删除”来删除列两次;空";触发data.table中的错误

R 通过将列设置为“删除”来删除列两次;空";触发data.table中的错误,r,data.table,R,Data.table,错误输入“向上”按钮导致错误: 如何以简单的方式删除“z”列 不像 DT <- DT[, 1:3, with=F]. DT在最新版本上,v1.9.6,我得到的是: require(data.table) # v1.9.6 DT[, z := 42] ## adds 'z' by reference DT[, z := NULL] ## removes 'z' column DT["a", z := NULL] ## sensible error, as the op

错误输入“向上”按钮导致错误:

如何以简单的方式删除“z”列

不像

DT <- DT[, 1:3, with=F]. 

DT在最新版本上,
v1.9.6
,我得到的是:

require(data.table) # v1.9.6
DT[, z := 42]      ## adds 'z' by reference

DT[, z := NULL]    ## removes 'z' column

DT["a", z := NULL] ## sensible error, as the operation doesn't make sense
# Error in `[.data.table`(DT, "a", `:=`(z, NULL)) :
#   When deleting columns, i should not be provided

DT[, z := NULL]
# Warning message:
# In `[.data.table`(DT, , `:=`(z, NULL)) :
#   Adding new column 'z' then assigning NULL (deleting it).

DT
#    x y v
# 1: a 1 1
# 2: a 3 2
# 3: a 6 3
# 4: b 1 4
# 5: b 3 5
# 6: b 6 6
# 7: c 1 7
# 8: c 3 8
# 9: c 6 9

当询问不受欢迎的行为时,必须提供您的版本。这很可能是固定在最近的版本。因此,节省每个人时间的最好方法是先升级到最新版本,在那里测试,然后在这里发布。如果您想提供真正的帮助,那么您还可以在上对其进行测试,如果您能够重现不希望出现的行为,还可以提交一个问题。

在最新版本,v1.9.6
上,我得到的是:

require(data.table) # v1.9.6
DT[, z := 42]      ## adds 'z' by reference

DT[, z := NULL]    ## removes 'z' column

DT["a", z := NULL] ## sensible error, as the operation doesn't make sense
# Error in `[.data.table`(DT, "a", `:=`(z, NULL)) :
#   When deleting columns, i should not be provided

DT[, z := NULL]
# Warning message:
# In `[.data.table`(DT, , `:=`(z, NULL)) :
#   Adding new column 'z' then assigning NULL (deleting it).

DT
#    x y v
# 1: a 1 1
# 2: a 3 2
# 3: a 6 3
# 4: b 1 4
# 5: b 3 5
# 6: b 6 6
# 7: c 1 7
# 8: c 3 8
# 9: c 6 9

当询问不受欢迎的行为时,必须提供您的版本。这很可能是固定在最近的版本。因此,节省每个人时间的最好方法是先升级到最新版本,在那里测试,然后在这里发布。如果您想提供真正的帮助,那么您还可以在上对其进行测试,如果您能够重现不希望出现的行为,还可以提交一个问题。

在最新版本,v1.9.6上,我得到的是:

require(data.table) # v1.9.6
DT[, z := 42]      ## adds 'z' by reference

DT[, z := NULL]    ## removes 'z' column

DT["a", z := NULL] ## sensible error, as the operation doesn't make sense
# Error in `[.data.table`(DT, "a", `:=`(z, NULL)) :
#   When deleting columns, i should not be provided

DT[, z := NULL]
# Warning message:
# In `[.data.table`(DT, , `:=`(z, NULL)) :
#   Adding new column 'z' then assigning NULL (deleting it).

DT
#    x y v
# 1: a 1 1
# 2: a 3 2
# 3: a 6 3
# 4: b 1 4
# 5: b 3 5
# 6: b 6 6
# 7: c 1 7
# 8: c 3 8
# 9: c 6 9

当询问不受欢迎的行为时,必须提供您的版本。这很可能是固定在最近的版本。因此,节省每个人时间的最好方法是先升级到最新版本,在那里测试,然后在这里发布。如果您想提供真正的帮助,那么您还可以在上对其进行测试,如果您能够重现不希望出现的行为,还可以提交一个问题。

在最新版本,v1.9.6上,我得到的是:

require(data.table) # v1.9.6
DT[, z := 42]      ## adds 'z' by reference

DT[, z := NULL]    ## removes 'z' column

DT["a", z := NULL] ## sensible error, as the operation doesn't make sense
# Error in `[.data.table`(DT, "a", `:=`(z, NULL)) :
#   When deleting columns, i should not be provided

DT[, z := NULL]
# Warning message:
# In `[.data.table`(DT, , `:=`(z, NULL)) :
#   Adding new column 'z' then assigning NULL (deleting it).

DT
#    x y v
# 1: a 1 1
# 2: a 3 2
# 3: a 6 3
# 4: b 1 4
# 5: b 3 5
# 6: b 6 6
# 7: c 1 7
# 8: c 3 8
# 9: c 6 9

当询问不受欢迎的行为时,必须提供您的版本。这很可能是固定在最近的版本。因此,节省每个人时间的最好方法是先升级到最新版本,在那里测试,然后在这里发布。如果你真的想提供帮助,那么你也可以在上测试它,如果你能够重现不希望出现的行为,还可以提交一个问题。

我不理解这里的问题。您自己使用
DT[,z:=NULL]
以“简单的方式”删除了
z
列,那么现在出现了什么问题?我也不能重现你提到的这种行为。您是否有最新版本的
数据表
(v1.9.6)?很抱歉,我没有清楚地描述这个问题。运行
DT[,z:=NULL]
后,将重新运行
DT[,z:=NULL]
。然后在“DT”中生成一列名为“z”的NULL,并且它不能被
DT[,z:=NULL]
删除。我的版本是1.9.6。删除某些行的列没有意义。要么你有一个专栏,要么没有。我可以复制这一点(我和其他许多人一样,被1.9.4 thx“卡住”了,新版本会出现什么问题),但为什么人们会继续这样做呢?
z:=NULL
?不管怎样,您可能会问这个问题,因为您只剩下一个
data.table
和一个
z
列,您不想要也无法摆脱它
mdt$z@hrbrmstr OP说他使用的是v1.9.6。不管怎样,
DT[,z:=NULL]
对v1.9.4不起作用吗??你为什么要做mdt$z我不明白这里的问题。您自己使用
DT[,z:=NULL]
以“简单的方式”删除了
z
列,那么现在出现了什么问题?我也不能重现你提到的这种行为。您是否有最新版本的
数据表
(v1.9.6)?很抱歉,我没有清楚地描述这个问题。运行
DT[,z:=NULL]
后,将重新运行
DT[,z:=NULL]
。然后在“DT”中生成一列名为“z”的NULL,并且它不能被
DT[,z:=NULL]
删除。我的版本是1.9.6。删除某些行的列没有意义。要么你有一个专栏,要么没有。我可以复制这一点(我和其他许多人一样,被1.9.4 thx“卡住”了,新版本会出现什么问题),但为什么人们会继续这样做呢?
z:=NULL
?不管怎样,您可能会问这个问题,因为您只剩下一个
data.table
和一个
z
列,您不想要也无法摆脱它
mdt$z@hrbrmstr OP说他使用的是v1.9.6。不管怎样,
DT[,z:=NULL]
对v1.9.4不起作用吗??你为什么要做mdt$z我不明白这里的问题。您自己使用
DT[,z:=NULL]
以“简单的方式”删除了
z
列,那么现在出现了什么问题?我也不能重现你提到的这种行为。您是否有最新版本的
数据表
(v1.9.6)?很抱歉,我没有清楚地描述这个问题。运行
DT[,z:=NULL]
后,将重新运行
DT[,z:=NULL]
。然后在“DT”中生成一列名为“z”的NULL,并且它不能被
DT[,z:=NULL]
删除。我的版本是1.9.6。删除某些行的列没有意义。要么你有一个专栏,要么没有。我可以复制这一点(我和其他许多人一样,被1.9.4 thx“卡住”了,新版本会出现什么问题),但为什么人们会继续这样做呢?
z:=NULL
?不管怎样,您可能会问这个问题,因为您只剩下一个
data.table
和一个
z
列,您不想要也无法摆脱它
mdt$z@hrbrmstr OP说他使用的是v1.9.6。不管怎样,
DT[,z:=NULL]
对v1.9.4不起作用吗??你为什么要做mdt$z我不明白这里的问题。您自己使用
DT[,z:=NULL]
以“简单的方式”删除了
z
列,那么现在出现了什么问题?我也不能重现你提到的这种行为。您是否有最新版本的
数据表
(v1.9.6)?很抱歉,我没有清楚地描述这个问题。运行
DT[,z:=NULL]
后,将重新运行
DT[,z:=NULL]
。然后在“DT”中生成一列名为“z”的NULL,并且它不能被
DT[,z:=NULL]
删除。我有版本1。