2015-12-02 103 views
-4

後,我來到了下表爲: Complaint types and Boroughs數據排序

我想,以確定在每個市鎮前4的問題。由於有4個自治市鎮,排序不起作用。有關如何獲得的任何想法?

+0

看'order' .. –

+0

所以,我把每個市鎮的一個子集,它使用順序? –

+0

@Alex嘗試訂單,testsort < - aggregatespread [order(-BRONX)]錯誤:找不到對象'BRONX' –

回答

0

您可以使用order(column, decreasing=TRUE)[1:4]將投訴類型列子集。它將返回向量中最大的四個值。然後很容易將其轉換爲任何需要的形式;這裏的數據幀是有道理的:

lst <- lapply(df[-1], function(col) df[,'Complaint.Type'][order(col, decreasing=T)[1:4]]) 
as.data.frame(lst) 
#  BRONX BROOKLYN MANHATTAN QUEENS 
#1 Facility Facility  Adopt Facility 
#2 Abuse Abuse Advocate Adopt 
#3  Park  Air  Park  Park 
#4 Advocate Adopt  Abuse Advocate 

數據

df <- data.frame(Complaint.Type=c('Adopt', 'Advocate', 'Air', 'Abuse', 'Facility','Park'), 
       BRONX=c(0,5, 1, 33, 81, 7), 
       BROOKLYN=c(2,0,100,148,177, 1), 
       MANHATTAN=c(129,49,2,9,1,15), 
       QUEENS=c(50,3,0,3,2469,6)) 
+0

就像一個魅力!謝謝!你能幫我理解df [-1]和函數(col)的作用嗎? –

+0

'df [-1]'刪除第一列。我們不希望在投訴類型 –

+0

中包含投訴類型'函數(col)df [,'投訴...... [1:4]]'被稱爲匿名函數。我創建了名字'col',我可以使用任何字符串來定義變量。 col只是因爲我們正在談論列而有名。有關匿名函數的完整說明,請訪問https://www.safaribooksonline.com/library/view/the-art-of/9781593273842/ch07s13.html –