2017-09-20 41 views
0
Process_Table = Process_Table[order(-Process_Table$Process, -Process_Table$Freq),] 

#output 
          Process Freq Percent 
17   Other Airport Services 45 15.46 
5       Check-in 35 12.03 
23 Ticket sales and support channels 35 12.03 
11    Flight and inflight 33 11.34 
19      Pegasus Plus 23 7.90 
24      Time Delays 16 5.50 
7        Other 13 4.47 
14        Other 13 4.47 
22        Other 13 4.47 
25        Other 13 4.47 
16        Other 11 3.78 
20        Other 6 2.06 
26        Other 6 2.06 
3        Other 5 1.72 
13        Other 5 1.72 
18        Other 5 1.72 
21        Other 4 1.37 
1        Other 2 0.69 
2        Other 1 0.34 
4        Other 1 0.34 
6        Other 1 0.34 
8        Other 1 0.34 
9        Other 1 0.34 
10        Other 1 0.34 
12        Other 1 0.34 
15        Other 1 0.34 

給予不同的頻率,你可以看到它給不同的頻率在同一水平 ,而如果我在這個功能它給輸出爲以下爲什麼同一類別中的R

印刷水平
levels(Process_Table$Process) 

[1] "Check-in"       "Flight and inflight"    
[3] "Other"        "Other Airport Services"   
[5] "Pegasus Plus"      "Ticket sales and support channels" 
[7] "Time Delays"    

我想要的是「其他」類別的組合頻率。任何人都可以幫助我解決這個問題。


編輯:代碼是用來導出第一組輸出:

Process_Table$Percent = round(Process_Table$Freq/sum(Process_Table$Freq) * 100, 2) 

Process_Table$Process = as.character(Process_Table$Process) 
low_list = Process_Table %>% 
    filter(Percent < 5.50) %>% 
    select(Process) 

Process_Table$Process = ifelse(Process_Table$Process %in% low_list$Process, 'Other', Process_Table$Process) 

as.data.frame(Process_Table) 

Process_Table$Process = as.factor(Process_Table$Process) 
+2

你的'''group_by'''在輸入的代碼裏在哪裏? – amrrs

+2

您是如何在第一時間創建這些數據的?請編輯您的問題,以包含樣本輸入數據和期望輸出的[可重現示例](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 – MrFlick

+0

這是一個航空公司抱怨數據集。特徵過程是一個因子/分類特徵,有大約26個等級,我根據它的頻率百分比對其進行了彙總,並給出了一個條件,將所有頻率百分比低於5.5%的類別/等級轉換爲1單層爲「其他」。 它這樣做了,但所有更改的級別的頻率分別顯示。現在在使用@ Troy的代碼後就已經解決了。 謝謝你的關注。 – Deb

回答

0

你Processed_Table應進行聚合的另一個步驟。將以下內容添加到數據彙總的最後一步。

Processed_Table <- Processed_Table %>% group_by(Process) %>% summarize(Freq = sum(Freq), Percent = sum(Percent)) 
+0

謝謝@Troy Vo。它現在給出了期望的結果。 – Deb

相關問題