2016-03-07 38 views
-2
df <- A B C D E F G H  
     0 1 2 3 4 5 6 7   
     1 2 3 8 5 6 7 4   

需要查找上述給定數據幀中的第1個和第2個最大號。結果應該如下。返回第1個最大和第2個最大號

A B C D E F G H  1st Largest  2nd Largest 
0 1 2 3 4 5 6 7   7     6 
1 2 3 8 5 6 7 4   8     7 
+1

你試過了什麼?爲什麼它不起作用? – Heroka

回答

0

我們可以通過使用apply(與MARGIN=1)行,sortdecreasing=TRUE選項的元素,循環獲取與head或只是[1:2]前兩個元素,調換輸出並指定爲創建兩個新列在'df'中。

df[c("firstLargest", "SecondLargest")] <- t(apply(df, 1, 
      function(x) head(sort(x, decreasing=TRUE),2))) 
df 
# A B C D E F G H firstLargest SecondLargest 
#1 0 1 2 3 4 5 6 7   7    6 
#2 1 2 3 8 5 6 7 4   8    7 
相關問題