2013-06-03 30 views
2

所以我有一段文本,我已经分离出一个向量,并且从向量的每一行中我将它进一步分离为一个数据帧。在一个完美的世界里,DF的每一行都是完全一样的,但它不是和那里有许多NA值的行。我需要做的是从数据框中选择NA值最少的行。从NA值最小的数据帧中选择一行

所以说DF是这样的:

名称年度NA地址NA州NA
名称新年ID地址城市州排名
名年NA NA市州NA
名称NA NA NA NA NA排名
名称年份不适用不适用不适用

它们各自属于哪一列。所以我需要一种方法来确定哪一行的NA数最少,然后选择该行的元素。所以,最后我想回归只是单行DF(或最好的载体),读取

名称新年ID地址城市州排名

在这种情况下,第2行。

我知道:

MAX(!rowSums(is.na(X)))

会返回给我的第n行的数量最多的非na值,但我似乎无法弄清楚如何获取该行的元素。我正在考虑使用哪个()可以工作,但我似乎无法弄清楚。

感谢您的帮助!

大卫

回答

6

如果数据帧是df,则:

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

应该传回港定居最少的单排的数据帧。

+0

你完全正确!我尝试了一些与此类似的东西,但看起来我必须让我的语法错误。非常感谢! PS。它不让我赞成,因为我的代表如此之低,但只要知道我会尽我所能! – Apc0243

+0

很高兴为您提供帮助。即使您不能投票,您仍然应该能够选择这个作为您的“正确”答案。 –