HAVE = data.frame(STUDENT = c(1,1,1,2,2,2,3,3),
TIME = c(1,2,3,1,2,3,1,2),
SCORE = c(7, NA, NA, 5, NA, 19, NA, 2))
WANT = data.frame(STUDENT = c(1,1,1,2,2,2,3,3),
TIME = c(1,2,3,1,2,3,1,2),
SCORE = c(7, 12, 17, 5, 10, 19, NA, 2))
我希望通过以下步骤修改SCORE: 如果is.na(SCORE),则取先前的值作为CONCENT,并向其添加5.但只能向下而不是向上.
我试过了,但没有成功,当学生连续有两个NA时,它就不起作用了
HAVE %>% group_by(STUDENT) %>% mutate(WANT = ifelse(is.na(SCORE), lag(SCORE) + 5, SCORE))