从具有最小NA值的数据框中选择一行

时间:2013-06-03 20:07:03

标签: r select dataframe row which

所以我有一个文本块,我已经分成了一个向量,从每行向量我进一步将它分成一个数据帧。在一个完美的世界中,DF的每一行都是完全相同的,但它不是,并且有许多行中包含NA值。我需要做的是从数据框中选择具有最少NA值的行。

所以说DF看起来像这样:

  

姓名年份NA地址NA州NA
  姓名年份ID地址城市州等级
  姓名年份NA NA City State NA
  姓名NA NA NA NA NA等级
  姓名年份NA NA NA NA NA

它们各自属于列。所以我需要一种方法来识别哪个行的NA数最少,然后选择该行的元素。所以最终我希望返回只是单行DF(或优选的矢量)读取

  

姓名年份ID地址城市州级

在这种情况下,第2行。

我知道:

  

max(rowSums(!is.na(x)))

将返回具有最多非na值的行#,但我似乎无法弄清楚如何抓取该行的元素。我在想使用哪个()会起作用,但我似乎无法弄明白。

感谢您的帮助!

大卫

1 个答案:

答案 0 :(得分:6)

如果您的数据框为df,则:

df[which.max(rowSums(!is.na(df))),]

应该返回具有最少NA的单行数据帧。