Jaka jest funkcja lag i diff w SAS? Jaka jest aplikacja stojąca za tymi dwiema funkcjami?


Najlepsza odpowiedź

Witaj,

Spróbuję odpowiedzieć na to pytanie tak, jak powinienem . Krok DATA udostępnia dwie funkcje, LAG i DIF, umożliwiające dostęp do poprzednich wartości zmiennej lub wyrażenia. Funkcje te są przydatne do obliczania opóźnień i różnic w szeregach.

Użyte w prosty sposób, LAG i DIF działają jako funkcje opóźnienia i różnicy. Należy jednak pamiętać, że pomimo ich nazw funkcje LAG i DIF dostępne w kroku DATA nie są prawdziwymi funkcjami opóźnień i różnic.

LAG i DIF są raczej funkcjami kolejkowania, które pamiętają i zwraca wartości argumentów z poprzednich wywołań. Funkcja LAG zapamiętuje przekazaną do niej wartość i zwraca jako wynik wartość, którą przekazałeś jej w poprzednim wywołaniu. Funkcja DIF działa w ten sam sposób, ale zwraca różnicę między bieżącym argumentem a zapamiętaną wartością. (LAG i DIF zwracają brakującą wartość przy pierwszym wywołaniu funkcji.)

Prawdziwa funkcja opóźnienia nie zwraca wartości argumentu dla „poprzedniego wywołania”, podobnie jak DATA step LAG i Funkcje DIF. Zamiast tego prawdziwa funkcja opóźnienia zwraca wartość swojego argumentu dla „poprzedniej obserwacji”, niezależnie od sekwencji poprzednich wywołań funkcji. Zatem, aby prawdziwa funkcja opóźnienia była możliwa, musi być jasne, czym jest „poprzednia obserwacja”.

Jeśli dane są posortowane chronologicznie, wówczas LAG i DIF działają jako prawdziwe funkcje opóźnienia i różnicy. W razie wątpliwości użyj PROC SORT, aby posortować dane przed użyciem funkcji LAG i DIF. Uważaj na brakujące obserwacje, które mogą spowodować, że LAG i DIF zwrócą wartości, które nie są rzeczywistymi wartościami opóźnienia i różnic

Krok DANE to potężne narzędzie, które może odczytać dowolną liczbę obserwacji z dowolnej liczby plików wejściowych lub zestawy danych, mogą tworzyć dowolną liczbę zestawów danych wyjściowych i mogą zapisywać dowolną liczbę obserwacji wyjściowych do dowolnego zestawu danych wyjściowych, wszystkie w tym samym programie. Zatem generalnie nie jest jasne, co oznacza „poprzednia obserwacja” w programie DATA step. W programie krokowym DATA „poprzednia obserwacja” istnieje tylko wtedy, gdy napiszesz program w prosty sposób, który nada temu pojęciu znaczenie.

Ponieważ, ogólnie rzecz biorąc, poprzednia obserwacja nie jest jasno zdefiniowana, jest nie jest możliwe wykonanie prawdziwych funkcji opóźnień lub różnic dla kroku DANE. Zamiast tego krok DATA zapewnia funkcje kolejkowania, które ułatwiają obliczanie opóźnień i różnic.

Mam nadzieję, że ta odpowiedź okaże się pomocna.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *