gpt4 book ai didi

r - is.null 不适用于 R 中的 null data.table [可能的错误]?

转载 作者:行者123 更新时间:2023-12-04 23:04:38 25 4
gpt4 key购买 nike

我相信这可能是一个错误。如果是这样,我会报告。寻找确认:

> is.null(data.table(NULL))
[1] FALSE

我在常见问题解答中看到以下内容:

2.5 Is a NULL data.table the same as DT[0]? No, despite the print method indicating otherwise. Strictly speaking it's not possible to have is.null(data.table(NULL)) return FALSE. This FAQ may be revisited in future.



如果这是预期的行为:如何检查对象是否为空?特别是 rbindlist NULL 对象返回 NULL data.table那么如何检查呢?
> is.null(rbindlist(NULL))
[1] FALSE

最佳答案

我不知道为什么 FAQ 是这样表述的。但是,空数据表只是一个空列表:

> data.table:::null.data.table
function ()
{
ans = list()
setattr(ans, "class", c("data.table", "data.frame"))
setattr(ans, "row.names", .set_row_names(0L))
settruelength(ans, 0L)
alloc.col(ans)
}

这不是 NULL .来自 ?list :

An empty pairlist, pairlist() is the same as NULL. This is different from list().



您可以通过查看它的长度是否为 0 ( length(DT) == 0 ) 来检查它。这是什么 data.table:::print.data.table确实决定是否打印“NULL data.table”或“Empty data table (0 rows) ...”。

关于r - is.null 不适用于 R 中的 null data.table [可能的错误]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15317536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com