вот те данные, которые помогут создать образец для вопроса, заданного ниже:
df1 <- data.frame(ID = c(1:5), Order_status_1 = c(1,1,0,0,1), Order_time_1 = c(20, 30, 0, 0, 47),
Order_status_1 = c(0,1,1,1,1), Order_time_1 = c(0, 36, 12, 24, 88), Order_status_3 = c(0, 1, 1, 0,
0), Order_time_3 = c(0, 40, 25, 0, 0), Order_status_4 = c(0, 1, 0, 0, 0), Order_time_3 = c(0, 65, 0,
0, 0), Order_close_date = c(100, 200, 300, 400, 500) )
ожидаемый результат
df2 <- data.frame(ID = c(1:5), Order_status_1 = c(1,1,0,0,1), Order_time_1 = c(20, 30, 0, 0, 47),
Order_status_2 = c(0,1,1,1,1), Order_time_2 = c(100, 36, 12, 24, 88), Order_status_3 = c(0, 1, 1, 0,
0), Order_time_3 = c(100, 40, 25, 400, 500), Order_status_4 = c(0, 1, 0, 0, 0), Order_time_4 =
c(100, 65, 300, 400, 500), Order_close_date = c(100, 200, 300, 400, 500) )
Как вы можете видеть значение в последнем (times) столбец копируется в столбец times, содержащий 0 -> после столбца значений времени, отличного от нуля.
Я чувствую, что цикл должен начать проверку (0), начиная с последнего столбца времени, пока он не достигнет ненулевого значения, а затем вставить значение (100,200,300,400,500) в соответствующие ячейки. Данные содержат несколько строк, и это только пример из них. Так что любезно предоставьте решение (пример - для циклов if или if), которое может выполнить код для более чем 1000 строк.