2016-11-29 1 views
1

현재 직원 회전율을 조사하는 프로젝트를 진행 중입니다. 지금까지 나는 다음 샘플과 같은 테이블 만든 : 나는 위치와 달을 기준으로 Net_Change 컬럼의 합을 취함으로써 팀의 크기를 계산 걸려R - 매월 위치 별 팀 크기 합계 계산

library(tidyverse) 

Data <- data.frame(Month = c("Jan", "Feb", "March", "Jan", "Feb", "March"), 
        Location = c("Sheffield", "Sheffield", "Sheffield","London", "London", "London"), 
        Joiners = c(7,3,8,4,9,1), 
        Leavers = c(1,5,9,3,2,5)) %>% 
     mutate(Net_Change = Joiners - Leavers) 

을 (시퀀스의 순서대로). 예를 들어, 런던의 2 월 팀 크기는 8 (1 + 7)이어야하고 3 월 팀 크기는 4 (1 + 7-4)와 같아야합니다.

dplyr 'summarize'함수를 사용하여이 작업을 시도했지만 성공하지 못했습니다. '깔끔한'방법이 적용 가능하면 좋을 것입니다.

감사합니다.

+2

'cumsum()'을 (를) 찾고있는 것으로 보입니다. – jazzurro

+1

감사합니다. – George

답변

0
Data %>% group_by(Location) %>% mutate(Team_size = cumsum(Net_Change)) 

# Month Location Joiners Leavers Net_Change Team_size 
# (fctr) (fctr) (dbl) (dbl)  (dbl)  (dbl) 
#1 Jan Sheffield  7  1   6   6 
#2 Feb Sheffield  3  5   -2   4 
#3 March Sheffield  8  9   -1   3 
#4 Jan London  4  3   1   1 
#5 Feb London  9  2   7   8 
#6 March London  1  5   -4   4 
+0

고맙습니다. 그 전에는 그 기능을 보지 못해서 도움이됩니다. 이 작업을 수행하려면 행을 월 단위로 정렬해야합니다. – George

+0

@George 늦게 응답했습니다. 아뇨, 주문할 필요가 없습니다. 출력은 데이터 순서대로 나타납니다. 명시적인 순서를 수행하지 않았습니다. –

+0

문제 없습니다. 귀하의 솔루션이 완벽하게 작동 해 주셔서 감사합니다! :) – George