2013-06-03 29 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

很高興爲您提供幫助。即使您不能投票,您仍然應該能夠選擇這個作爲您的「正確」答案。 –