У меня есть набор данных с разными идентификаторами, датой, количеством. Все идентификаторы имеют одинаковую точную дату начала, однако некоторые имеют начальные количества 0, поэтому в основном дата начала должна быть позже.
Я пытаюсь отфильтровать строки так, чтобы каждый идентификатор
df <- data.frame(ID = c("1", "1", "1", "1", "1", "1",
"2", "2", "2", "2", "2", "2",
"3", "3", "3", "3", "3", "3"),
Date = c(seq(as.Date("2000/1/1"), by = "month", length.out = 6),
seq(as.Date("2000/1/1"), by = "month", length.out = 6),
seq(as.Date("2000/1/1"), by = "month", length.out = 6)),
QTY = c(0, 0, 0, 40, 0, 60, 50, 55, 0, 70, 88, 64, 0, 43, 43, 0, 99, 99))
Так что в основном в приведенном выше примере с df я хочу, чтобы идентификатор № 1 начинался с четвертого значения QTY, а идентификатор № 3 начинался со второго значения QTY.
Я пытался использовать group by и изменять его новый столбец с ifelse, но у меня была некоторая ошибка.
Мой ожидаемый df должен быть преобразованием из первого в следующий, так что просто удаляйте первые строки с нулями для каждого идентификатора, пока QTY не начнет отображаться. более 0
df <- data.frame(ID = c("1", "1", "1",
"2", "2", "2", "2", "2", "2",
"3", "3", "3", "3", "3"),
Date = c(seq(as.Date("2000/4/1"), by = "month", length.out = 3),
seq(as.Date("2000/1/1"), by = "month", length.out = 6),
seq(as.Date("2000/2/1"), by = "month", length.out = 5)),
QTY = c(40, 0, 60, 50, 55, 0, 70, 88, 64, 43, 43, 0, 99, 99))