Nejlepší odpověď
Dobrý den,
Zkusím odpovědět na tuto otázku podle mého porozumění . Krok DATA poskytuje dvě funkce, LAG a DIF, pro přístup k předchozím hodnotám proměnné nebo výrazu. Tyto funkce jsou užitečné pro výpočet zpoždění a rozdílů sérií.
Při jednoduchém použití fungují LAG a DIF jako funkce zpoždění a rozdílu. Je však důležité mít na paměti, že navzdory jejich jménům nejsou funkce LAG a DIF dostupné v kroku DATA skutečné funkce zpoždění a rozdílu.
Spíše LAG a DIF jsou funkce ve frontě, které si pamatují a vrátit hodnoty argumentů z předchozích hovorů. Funkce LAG si pamatuje hodnotu, kterou jí předáte, a jako výsledek vrátí hodnotu, kterou jste jí předali při předchozím volání. Funkce DIF funguje stejným způsobem, ale vrací rozdíl mezi aktuálním argumentem a zapamatovanou hodnotou. (LAG a DIF vrací chybějící hodnotu při prvním volání funkce.)
Funkce true lag nevrací hodnotu argumentu pro „předchozí volání“, stejně jako DATA step LAG a Funkce DIF. Funkce true lag místo toho vrátí hodnotu svého argumentu pro „předchozí pozorování“ bez ohledu na posloupnost předchozích volání funkce. Aby tedy byla funkce skutečného zpoždění možná, musí být jasné, co je to „předchozí pozorování“.
Pokud jsou data řazena chronologicky, pak LAG a DIF fungují jako funkce skutečného zpoždění a rozdílu. V případě pochybností použijte PROC TŘÍDENÍ k roztřídění dat před použitím funkcí MAS a DIF. Dejte si pozor na chybějící pozorování, která mohou způsobit, že LAG a DIF vrátí hodnoty, které nejsou skutečnými hodnotami zpoždění a rozdílu.
Krok DATA je mocný nástroj, který dokáže číst libovolný počet pozorování z libovolného počtu vstupních souborů nebo datové sady, mohou vytvářet libovolný počet výstupních datových sad a mohou zapisovat libovolný počet výstupních pozorování do kterékoli z výstupních datových sad, vše ve stejném programu. Obecně tedy není jasné, co znamená „předchozí pozorování“ v programu DATA step. V programu s krokem DATA existuje „předchozí pozorování“, pouze pokud program napíšete jednoduchým způsobem, který dává tomuto konceptu smysl.
Jelikož obecně není předchozí pozorování jasně definováno, je není možné provést skutečné zpoždění nebo rozdílové funkce pro krok DATA. Místo toho krok DATA poskytuje funkce řazení do fronty, které usnadňují výpočet zpoždění a rozdílů.
Doufám, že tato odpověď pomůže