为什么空数据帧失败了is.null()测试?

时间:2015-02-17 07:20:36

标签: r null dataframe is-empty

如果我的问题非常基本,请原谅。  我通过df <- data.frame()创建了一个空数据帧,显然数据帧是NULL(空)。当我尝试通过is.null(df)检查数据框是否为空时,结果为FALSE。在R中NULLempty之间是否有任何区别。在这种情况下,如果数据框不是NULL,那么空数据框中的内容以及何时{{1} }}。感谢

3 个答案:

答案 0 :(得分:38)

df不是NULL,因为它是一个数据框,因此具有一些已定义的属性。例如,它有一个类。您可以使用nrow(df)获取数据框中的行数,即使结果恰好为零。因此,行数也是明确定义的。

据我所知,基地R中没有is.empty命令。您可以做的是,例如,以下

is.data.frame(df) && nrow(df)==0

这将为空数据帧(即没有行的数据帧)赋予TRUE,否则为false。

首先检查is.data.frame的原因是nrow可能会导致错误,如果它应用于除数据框以外的任何内容。感谢&&nrow(df)仅在df是数据框时才会被评估。

答案 1 :(得分:0)

data.frame()创建一个具有数据框类的对象。由于对象 存在 is.null将返回 FALSE NULL变量没有类,也没有内容。

答案 2 :(得分:-3)

以上答案是正确的,is.na和is.null无法在R中检测到空值。这就是我要计算你的数据框中有多少空值的方法&#39; df& #39;在这种情况下。

is.na(df [df ==&#39;&#39;])&lt; - TRUE#这只是将NA替换为df中的空值。

sum(is.na(df))#会让你知道你的df&#39;中有多少空值。

希望这有帮助。