R 如何删除datatable中的单个值?

R 如何删除datatable中的单个值?,r,null,data.table,R,Null,Data.table,假设我想通过将数据表的第I行和第j列中的数据设置为NULL来删除它们: dt[i, j := NULL,with=F] set(dt1,i,j,value=NULL) 上述两个选项都给了我一个错误:删除列时,不应提供我 但是,如果我不提供I,数据表中的整个列都会被删除,这不是我想要的 那么如何删除datatable中的单个值呢?从data.table的意义上讲,您不能删除单元格中的项。您可以将其值更改为missing(最有可能的是),它将使用以下内容实现您想要的目标 dt[i, j := N

假设我想通过将数据表的第I行和第j列中的数据设置为NULL来删除它们:

dt[i, j := NULL,with=F]

set(dt1,i,j,value=NULL)
上述两个选项都给了我一个错误:删除列时,不应提供我

但是,如果我不提供I,数据表中的整个列都会被删除,这不是我想要的


那么如何删除datatable中的单个值呢?

从data.table的意义上讲,您不能删除单元格中的项。您可以将其值更改为missing(最有可能的是),它将使用以下内容实现您想要的目标

dt[i, j := NA]
dt <- dt[-i] # exclude row i from the data.table
这将把第
i
行中的
j
列的值设置为NA,或者用其他术语将其取消设置。稍后,当您想要使用这些值或排除它们时,您可以使用
is.na(..)
类似地使用
is.null(..)

关于您得到的错误,
j:=NULL
用于
数据。表
删除整个列,实际上,当您尝试删除其中一部分时(通过指定
i
),它会产生错误。 若要从数据表中删除整行,可以使用

dt[i, j := NA]
dt <- dt[-i] # exclude row i from the data.table

dt单个值可以是
NA
,而不是
NULL
。R中缺少的值用
NA
表示,它们在某些DBMS(如MySQL)中起着与NULL相同的作用。还不支持通过引用删除。可能被复制:我不知道您的data.table看起来如何,但这是可行的:
xy谢谢大家,我知道我只能将其设置为NA而不是NULL,这回答了我的问题:)