Я пытаюсь создать новый столбец в кадре данных с именем «Date2», который мне придется пройти по всем предыдущим итерациям расчета.
Следующая логика.
If ID2 = Previous(ID2) then Previous(Date2) ELSE
Date1 + 60
Example:
ID2 Date 1 Date 2
1001 1/1/2019 3/2/2019
1001 1/1/2019 3/2/2019
В строке 1 Date2 - это просто Date1 + 60, так как предыдущий ID2 отличается.
В строке 2 Date2 - это просто предыдущая Date2, поскольку предыдущий ID2 совпадает с текущим.
Код:
OrderedData$Well2BookDate <- 0 # initialize, sometimes better as just `list()`
for(i in 2:nrow(OrderedData)){
if(OrderedData[i,1]== OrderedData[i-1, 1]){
# Previous Well 2 Book Date
OrderedData[i,14 ] <- OrderedData[i-1, 14]
} else {
# Online Date 1 + 60 Days
OrderedData[i, 14] <- OrderedData[i, 9] + 60
}
}
Этот код работает в основном, за исключением того, что «Дата 2 скважины» выводится как число, а не как дата. Дата 1 в сети уже была классом даты.