首页 > 解决方案 > 尝试使用 na.omit 省略特定列中的“na”行。该函数运行没有错误,但没有省略所需的行

问题描述

我对 R 很陌生,这是我在网站上的第一篇文章,我试图从我的数据框中省略 na 行。我正在使用运行 put 的 na.omit 函数不会省略所需的列。

我的数据框如下所示,我只想从 Gene.Symbol 列中删除“na”值,而不影响其他两列。

我试过了

na.omit(data.frame, cols= Gene.Symbol(data.frame))

哪个运行,但不删除任何行,我通过查看数据框知道大约有 19 行带有“na”,因此该命令根本不起作用。

谢谢您的帮助!

Gene.Symbol Diag.A      Rel.A
A2ML        173         17

na          02          95 

ABCA10      18          97 

ABCA4       14          na

ADCY2       81          98

标签: r

解决方案


如果您希望从 N 列中排除所有缺失值,complete.cases则另一种选择。它返回 TRUE 和 FALSE 的向量,其中 TRUE 是在所选列中没有任何 NA 的行。我发现它的文档比它更好na.omit,而且更清晰:

tst <- mtcars[1:5, ]
tst$some_na <- c(NA, NA, 2, 2, 3)
tst$another_na <- c(NA, NA, 2, 2, NA)

# These are the columns you want to exclude `NA` from:
non_na <- complete.cases(tst[, c("some_na", "another_na")])

# No NA's
tst[non_na, ]
#>                 mpg cyl disp  hp drat    wt  qsec vs am gear carb some_na
#> Datsun 710     22.8   4  108  93 3.85 2.320 18.61  1  1    4    1       2
#> Hornet 4 Drive 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1       2
#>                another_na
#> Datsun 710              2
#> Hornet 4 Drive          2

推荐阅读