首页 > 解决方案 > 为什么在 R 中执行 fix() 后该函数起作用

问题描述

以下是发生的事情:

> NA.of.df = which(rowSums(is.na(df)) == ncol(df))
> NA.of.df 
named integer(0)
> fix(df) # i want to see what's in here -- nothing wrong
> NA.of.df # so i run it again  
1 3 5 7 9 # it works!

为什么会这样??

一个可生产的示例(但看起来不像任何带有dput()的数据结构)如下所示:

> dput(NA.of.df)
structure(integer(0), .Names = character(0))

并且NA.of.df只是查找具有所有 NA 的行的代码(从此处获得: 删除所有数据为 NA 的 R 矩阵中的行)。(即NA.of.df = which(rowSums(is.na(df)) == ncol(df))

标签: r

解决方案


NA导致is.na不拾取这些元素的引号可能是一个问题

is.na(c(NA, "NA"))
#[1]  TRUE FALSE

完成后fix,它可能已删除引号并正确评估它


推荐阅读