【问题标题】:View columns with NAs in R在 R 中查看具有 NA 的列
【发布时间】:2015-08-26 22:30:35
【问题描述】:

嘿, 在我已经在这里得到了这么多有用的建议之后,我想问一个关于检测 NA 的问题 - 是否有可能查看包含 NA 的数据帧的 ROWS? 问题是我的数据框真的很大,所以

is.na(data_frame)

没有显示所有行(甚至几乎没有),所以我只知道有多少 NA 以及它们在哪些列中,但我真的很想知道它们是否在同一行中 - 这意味着他们可能会导致对方。 作为我的数据的一个例子,我只是给你数据框的头部,如果你需要更多然后告诉我

  transect_id year day month      LST precipitation Quarter
1       TR001 2010 191     7 30.62083             0       3
2       TR001 2010 191     7 30.62083             0       3
3       TR001 2010 191     7 30.62083             0       3
4       TR001 2010 191     7 30.62083             0       3
5       TR001 2010 191     7 30.62083             0       3
6       TR001 2010 191     7 30.62083             0       3
    SumPre average.temp  MinTemp  MaxTemp prev.temp prev.Precip
1 1.895143     30.78058 27.73995 33.54386  30.43515           0
2 1.895143     30.78058 27.73995 33.54386  30.43515           0
3 1.895143     30.78058 27.73995 33.54386  30.43515           0
4 1.895143     30.78058 27.73995 33.54386  30.43515           0
5 1.895143     30.78058 27.73995 33.54386  30.43515           0
6 1.895143     30.78058 27.73995 33.54386  30.43515           0
                     species regional_gam prop_pheno_sampled
1           Pontia daplidice      0.00000          0.4496937
2 Polyommatus icarus zelleri      0.00000          0.3952952
3       Gonepteryx cleopatra      1.30963          0.4731522
4           Anaphaeis aurota      0.00000          0.3731392
5         Carcharodus alceae      0.00000          0.1646973
6            Euchloe belemia      1.40654          0.3373209

如果我可以看到带有 NA 的行,我可以例如检查是否存在与 MaxTemp 中的 NA 在同一行中的 LST(景观表面温度)的 NA - 所以很明显,一个导致另一个。

我希望我的问题很清楚 :-) 提前致谢!

【问题讨论】:

  • df[,sapply(df,function(x)any(is.na(x)))] 用于列,df[apply(df,1,function(x)any(is.na(x)))] 用于行。

标签: r row na


【解决方案1】:

我经常使用的是

df[rowSums(is.na(df))>0,]

这将为您提供至少有一个NA 的所有行。它也应该相当高效,因为rowSums 是一个非常快的base 函数。

或用于列

df[,colSums(is.na(df))>0]

【讨论】:

  • 谢谢,结果很好 :-) 有时它比我想象的要简单。
猜你喜欢
  • 1970-01-01
  • 2021-12-19
  • 2021-06-08
  • 2021-11-12
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多