Care este funcția lag și diff în SAS? Care este aplicația din spatele acestor două funcții?


Cel mai bun răspuns

Bună ziua,

Permiteți-mi să încerc și să răspund la această întrebare, după înțelegerea mea . Pasul DATA vă oferă două funcții, LAG și DIF, pentru accesarea valorilor anterioare ale unei variabile sau expresii. Aceste funcții sunt utile pentru calcularea întârzierilor și diferențelor de serie.

Atunci când sunt utilizate în mod simplu, LAG și DIF acționează ca funcții de întârziere și diferență. Cu toate acestea, este important să rețineți că, în ciuda numelor lor, funcțiile LAG și DIF disponibile în pasul DATA nu sunt adevărate funcții de întârziere și diferență.

Mai degrabă, LAG și DIF sunt funcții de așteptare care își amintesc și returnează valorile argumentelor din apelurile anterioare. Funcția LAG își amintește valoarea pe care i-o transmiteți și returnează ca rezultat valoarea pe care i-ați trecut-o la apelul anterior. Funcția DIF funcționează în același mod, dar returnează diferența dintre argumentul curent și valoarea amintită. (LAG și DIF returnează o valoare lipsă la prima apelare a funcției.)

O funcție de întârziere adevărată nu returnează valoarea argumentului pentru „apelul anterior”, la fel ca și pasul DATA LAG și Funcții DIF. În schimb, o funcție de întârziere adevărată returnează valoarea argumentului său pentru „observația anterioară”, indiferent de secvența apelurilor anterioare către funcție. Astfel, pentru ca o funcție de întârziere adevărată să fie posibilă, trebuie să fie clar care este „observația anterioară”.

Dacă datele sunt ordonate cronologic, atunci LAG și DIF acționează ca adevărate funcții de întârziere și diferență. Dacă aveți dubii, utilizați PROC SORT pentru a sorta datele înainte de a utiliza funcțiile LAG și DIF. Feriți-vă de observațiile lipsă, care pot determina LAG și DIF să returneze valori care nu sunt valorile reale de diferență și diferență

Pasul DATA este un instrument puternic care poate citi orice număr de observații din orice număr de fișiere de intrare sau seturi de date, pot crea orice număr de seturi de date de ieșire și pot scrie orice număr de observații de ieșire pe oricare dintre seturile de date de ieșire, toate în același program. Astfel, în general, nu este clar ce înseamnă „observația anterioară” într-un program de date DATA. Într-un program cu pași DATA, „observația anterioară” există doar dacă scrieți programul într-un mod simplu care face ca acest concept să fie semnificativ.

Deoarece, în general, observația anterioară nu este clar definită, este nu este posibil să se facă adevărate funcții de întârziere sau diferență pentru pasul DATA. În schimb, pasul DATA oferă funcții de așteptare care facilitează calcularea decalajelor și diferențelor.

Sper că acest răspuns vă va ajuta

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *