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

Djo*_*822 2 select row r which dataframe

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

所以说DF看起来像这样:

姓名年份NA地址NA州
名称年份ID地址城市州名别
年份NA NA城市州名
NA NA NA NA NA
姓名年份NA NA NA NA NA

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

姓名年份ID地址城市州级

在这种情况下,第2行.

我知道:

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

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

谢谢你的帮助!

大卫

Noa*_*oss 6

如果您的数据框是df,那么:

df[which.max(rowSums(!is.na(df))),]
Run Code Online (Sandbox Code Playgroud)

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