1
SO에 관한 비슷한 질문을 한 후, like here 나는 마침내 내가 원하는 결과물을 얻었지만 거기에 갈 수있는 더 좋은 방법이 있는지 궁금해 할 수 없습니다. 또한 파이프 연산자를 사용하여 관리자 및 제목 조합 반복을 제거하는 마지막 단계를 연결하는 방법이 있는지 궁금합니다.dplyr을 사용하여 하위 그룹별로 백분율을 요약하는 더 나은 방법은 무엇입니까?
재현 예 : 생각과 도움에 미리
library(dplyr)
# Sample data frame
employee = LETTERS[1:18]
manager = c(rep("Tom", 3), rep("Sue", 4), rep("Mike", 4), rep("Jack", 7))
title = c(rep("Entry", 2), rep("Mid", 3), rep("Junior", 7), rep("Senior", 6))
mydata <- data.frame(employee, manager, title)
# Code gives me output I want, but wondering if there is a better way
org2 <- mydata %>%
group_by(manager, title) %>%
mutate(title_count = n()) %>% # Total number of people with given title by manager
ungroup() %>%
group_by(manager) %>% # Total number of people in manager's group
mutate(mgr_total = n()) %>%
group_by(title, add = TRUE) %>%
mutate(title_pctg = round(title_count/mgr_total*100, 1)) %>% # Percent of people with given title by manager
select(-employee)
# Remove duplicates of manager and title to summarize data wanted
org2 <- org2[!duplicated(org2[2:4]), ]
arrange(org2, manager, title)
# A tibble: 7 x 5
# Groups: manager, title [7]
# manager title title_count mgr_total title_pctg
# <fctr> <fctr> <int> <int> <dbl>
#1 Jack Junior 1 7 14.3
#2 Jack Senior 6 7 85.7
#3 Mike Junior 4 4 100.0
#4 Sue Junior 2 4 50.0
#5 Sue Mid 2 4 50.0
#6 Tom Entry 2 3 66.7
#7 Tom Mid 1 3 33.3
감사합니다.
우수. 나는 "처음"이라는 기능과 그것이 얼마나 편리한 지 잘 모르고있었습니다. – DaveM