所以我有一个文本块,我已经分成了一个向量,从每行向量我进一步将它分成一个数据帧。在一个完美的世界中,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值的行#,但我似乎无法弄清楚如何抓取该行的元素。我在想使用哪个()会起作用,但我似乎无法弄明白。
感谢您的帮助!
大卫
答案 0 :(得分:6)
如果您的数据框为df
,则:
df[which.max(rowSums(!is.na(df))),]
应该返回具有最少NA的单行数据帧。