可以有一個人解決存在的問題:SAS EG lagcalculation問題,而不是計算拉斯爲T - T-1
data want;
set have;
by mac;
if first.mac then do; DayDif=0; KmDif=0; end;
else do;
DayDif = Date - lag(Date); /* calculate the difference between two dates */
KmDiff = Kms - lag(Kms);
end;
run;
而我得到的結果是(在第一線0,但在第二次):
Mac Date Kms DayDif KmDif
SP0001 10DEC07 1885462.00000 0 0
SP0001 12DEC07 1885462.00000 . .
SP0001 30APR09 1885462.00000 505 0
SP0001 15JUL09 1886577.00000 76 1115
SP0001 16JUL09 1887667.00000 1 1090
SP0001 17JUL09 1889181.00000 1 1514
SP0001 17JUL09 1888825.00000 0 -356
.
.
(這裏當機器改變,滯後被取爲t - (T-2)和不爲t - (T-1))爲什麼????代碼中出現錯誤?
Machine Date Kms DayDif KmDif
SP0001 01OCT14 2898108.00000 1 1059
SP0001 02OCT14 2899148.00000 1 1040
HP0001 03OCT14 2900334.00000 1 1186
HP0002 17JAN08 926384.00000 0 0
HP0002 18JAN08 926384.00000 -2450 -1973950
HP0002 28APR09 1237332.00000 466 310948
HP0002 29APR09 1238599.00000 1 1267
調查DIF()函數。它以相同的方式運行,但直接計算差異。 – Reeza
@Reeza謝謝你的建議,我已經試過了,最後上面的解決方案,正如寫道,對於我所擁有的數據來說工作得很好。 :) – ZeekDSA