Новичок здесь. У меня есть данные о студентах и курсах, на которые они либо зачислены, либо выбыли/выбыли, либо никогда не зачислялись. Следовательно, у меня есть несколько строк одного и того же студента, поскольку они связаны с несколькими курсами в данном семестре. Мой желаемый результат состоит в том, чтобы определить каждого студента (а не каждый курс) как зачисленного, выбывшего/исключенного или никогда не зачисленного в одну строку, чтобы подсчитать количество уникальных студентов в каждой категории.
Если учащийся зачислен хотя бы на один курс, он будет определен как зачисленный («E») учащийся независимо от статуса других курсов учащегося. Если учащийся отказался/отозвал все свои курсы, он будет определен как исключенный/отключенный («DW»). Если статус зачисления на курс для учащегося "NA", это означает, что учащийся подал заявку, но никогда не зачислялся ни на какие курсы и будет определен как никогда не зачисленный ("NE") учащийся.
Был бы признателен за соответствующий код для этого.
Текущий выход:
STUDENT_ID COURSE COURSE_ENROLLMENT_STATUS
12345 MATH123 ENROLLED
12345 MATH345 DROPPED
45332 NA NA
53930 ENGL302 DROPPED
53930 MATH312 WITHDREW
53930 ENGN102 DROPPED
Желаемый результат:
STUDENT_ID STUDENT_TYPE
12345 E
45332 NE
53930 DW
library(dplyr)
df %>%
group_by(STUDENT_ID) %>%
mutate(STUDENT_TYPE = case_when(
any(COURSE_ENROLLMENT_STATUS == "ENROLLED") ~ "E",
all(COURSE_ENROLLMENT_STATUS == "DROPPED" | COURSE_ENROLLMENT_STATUS == "WITHDREW") ~ "DW",
TRUE ~ "NE")) %>%
select(STUDENT_ID, STUDENT_TYPE) %>% distinct()