Opcja YEARCUTOFF a przetwarzanie wartości datowych w SAS
W trakcie przetwarzania wartości datowych w SAS, możemy spotkać się z sytuacją, w której uzyskamy rok w poprzednim stuleciu. Ilustruje to poniższy przykład:
1 data _null_;
2 x = "20jan20"d;
3 y = "20jan30"d;
4 z = "20jan40"d;
5 put x= nldate. y= nldate. z= nldate.;
6 run;
x=20 stycznia 2020 y=20 stycznia 1930 z=20 stycznia 1940
Jak widać, w przypadku zmiennej x otrzymaliśmy datę w XXI wieku, natomiast w przypadku zmiennych y oraz z - w XX wieku.
Zachowanie to wynika z faktu, że definiując datę podaliśmy rok jako 2 cyfry. W takim przypadku SAS określa wiek w oparciu o wartość opcji YEARCUTOFF. Dla wartości niższych niż ta opcja przyjmowany jest wiek XXI, natomiast dla większych - wiek XX. W SAS 9.4 domyślna wartość tej opcji to 26.
Aby mieć pewność, że uzyskamy datę z właściwym rokiem zalecamy podawanie pełnego roku podczas definiowania zmiennej (np. z = "20jan2030"d;).