Ciao,
Вот мой реплицирующий пример.
HAVE <- data.frame(ID=c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6),
ABSENCE=c(NA,NA,NA,0,0,0,0,0,1,NA,0,NA,0,1,2,0,0,0),
TIME=c(1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3))
WANT <- data.frame(ID=c(1,2,3,4,5,6),
ABSENCE=c(NA,0,1,0,1,0),
TIME=c(NA,3,3,2,2,3))
Файл с данными HAVE необходим для преобразования в WANT.Таким образом, по существу для каждого идентификатора мне нужно идентифицировать первое ненулевое значение, и это значение попадает в файл данных ХОЧУ.Если все значения отсутствия равны NA, тогда TIME равно NA.Если все значения ABSENCE равны 0, тогда я сообщаю о последней возможной строке в WANT (как отражено в переменной TIME)
Это моя попытка:
WANT <- group_by(HAVE,ID) %>% slice(seq_len(min(which(ABSENCE > 0), n())))
, но я не знаю, каквзять последнюю из 0 строк, если есть только 0.