根据R中其他列的条件将数字附加到列中的字符串

时间:2018-12-20 23:25:59

标签: r

基于以下条件,我只想向列MATH中的course添加一个数字;对于每个ID,如果MATH的{​​{1}}列等于output,则将下一个pass的附加数字增加1。这是一个例子:

MATH

请帮助我在R中完成

1 个答案:

答案 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)