2017-05-29 29 views
0

想象這是我的數據HRD的結構:我想知道有多少人left百分比集團通過變量並顯示百分比率R上的vaue和dplyr

'data.frame': 14999 obs. of 2 variables: 
$ left     : Factor w/ 2 levels "0","1": 2 2 2 2 2 2 2 2 2 2 
$ sales    : Factor w/ 10 levels "accounting","hr",..: 8 8 8 8 8 8 8 8 8 8 ... 

(0 =停留,1 =離開)每個級別的sales

這是最接近我來:

hrd %>% group_by(sales) %>% count(left) 

但是,輸出是這樣的:

  sales left  n 
     <fctr> <fctr> <int> 
1 accounting  0 563 
2 accounting  1 204 
3   hr  0 524 
4   hr  1 215 
5   IT  0 954 
6   IT  1 273 
7 management  0 539 
8 management  1 91 
9 marketing  0 655 
10 marketing  1 203 
11 product_mng  0 704 
12 product_mng  1 198 
13  RandD  0 666 
14  RandD  1 121 
15  sales  0 3126 
16  sales  1 1014 
17  support  0 1674 
18  support  1 555 
19 technical  0 2023 
20 technical  1 697 

我想是這樣的:

hrd %>% group_by(sales) 
    %>% summarise(count = n()) 
    %>% mutate(leaving_rate = count(left == 1)/ count) 

但錯誤消息是說

Error: object 'left' not found

回答

1

首先不要使用summarise(),因爲它會將數據幀截斷爲彙總版本。所以刪除列「左」(和任何其他未提及的或非分組變量),只保留「銷售」(分組變量)和「計數」(提到的變種)。

你可以做一個總結的呼叫這樣的:

hrd %>% group_by(sales) %>% 
    summarise(percent_left = sum(left)/n()) 
+0

非常感謝。作品!對於其他人在這裏磕磕絆絆,你可以通過'''percent_left = sum(left == 0)''來得到相反的百分比。 –