为什么空数据帧无法通过 is.null() 测试?
Why does an empty dataframe fail an is.null() test?
如果我的问题很基础,请原谅。
我通过 df <- data.frame()
创建了一个空数据框,显然该数据框为 NULL(空)。当我尝试通过 is.null(df)
检查数据框是否为空时,结果为 FALSE。 R 中 NULL
和 empty
之间有什么区别吗?在这种情况下,如果数据框不是 NULL
,那么空数据框中的内容是什么,什么时候是 NULL
.谢谢
data.frame()
创建一个具有 数据框 class 的对象。因为对象 存在 ,is.null
将 return FALSE。 NULL
变量没有 class 也没有内容。
df
不是 NULL,因为它是一个数据框,因此具有一些已定义的属性。例如,它有一个 class。您可以使用 nrow(df)
获取数据框中的行数,即使结果恰好为零。因此,行数也是明确定义的。
据我所知,基本 R 中没有 is.empty
命令。您可以做的是,例如,以下
is.data.frame(df) && nrow(df)==0
这将为空数据框(即没有行的数据框)提供 TRUE,否则为 false。
首先检查 is.data.frame
的原因是 nrow
如果应用于除数据框之外的任何其他内容,可能会导致错误。感谢 &&
,nrow(df)
仅在 df
是数据框时才会被评估。
以上答案正确,is.na 和 is.null 无法检测到 R 中的空值。这就是我计算数据框中有多少空值的方法'df' 在这种情况下。
is.na(df[df =='']) <- TRUE # 这只是将 NA 替换为 df 中的空值。
sum(is.na(df)) # 会让您了解 'df' 中有多少个空值。
希望这对您有所帮助。
如果我的问题很基础,请原谅。
我通过 df <- data.frame()
创建了一个空数据框,显然该数据框为 NULL(空)。当我尝试通过 is.null(df)
检查数据框是否为空时,结果为 FALSE。 R 中 NULL
和 empty
之间有什么区别吗?在这种情况下,如果数据框不是 NULL
,那么空数据框中的内容是什么,什么时候是 NULL
.谢谢
data.frame()
创建一个具有 数据框 class 的对象。因为对象 存在 ,is.null
将 return FALSE。 NULL
变量没有 class 也没有内容。
df
不是 NULL,因为它是一个数据框,因此具有一些已定义的属性。例如,它有一个 class。您可以使用 nrow(df)
获取数据框中的行数,即使结果恰好为零。因此,行数也是明确定义的。
据我所知,基本 R 中没有 is.empty
命令。您可以做的是,例如,以下
is.data.frame(df) && nrow(df)==0
这将为空数据框(即没有行的数据框)提供 TRUE,否则为 false。
首先检查 is.data.frame
的原因是 nrow
如果应用于除数据框之外的任何其他内容,可能会导致错误。感谢 &&
,nrow(df)
仅在 df
是数据框时才会被评估。
以上答案正确,is.na 和 is.null 无法检测到 R 中的空值。这就是我计算数据框中有多少空值的方法'df' 在这种情况下。
is.na(df[df =='']) <- TRUE # 这只是将 NA 替换为 df 中的空值。
sum(is.na(df)) # 会让您了解 'df' 中有多少个空值。
希望这对您有所帮助。