2017-09-20 36 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

相关问题