基于以下条件,我只想向列MATH
中的course
添加一个数字;对于每个ID
,如果MATH
的{{1}}列等于output
,则将下一个pass
的附加数字增加1。这是一个例子:
MATH
请帮助我在R中完成
答案 0 :(得分:3)
类似的事情应该可以解决(使用dplyr
):
df %>%
group_by(ID) %>%
mutate(math_pass_count = 1 + lag(cumsum(course == "MATH" & outcome == "pass"),
default = 0),
suffix = ifelse(course == "MATH", math_pass_count, ""),
course = paste0(course, suffix)) %>%
select(-math_pass_count, -suffix)