Vad är lag och diff-funktionen i SAS? Vad är applikationen bakom dessa två funktioner?


Bästa svaret

Hej

Låt mig försöka svara på den här frågan efter min förståelse . DATA-steget ger dig två funktioner, LAG och DIF, för åtkomst till tidigare värden för en variabel eller ett uttryck. Dessa funktioner är användbara för beräkning av förseningar och skillnader i serier.

När de används på ett enkelt sätt fungerar LAG och DIF som fördröjnings- och skillnadsfunktioner. Det är dock viktigt att komma ihåg att, trots deras namn, är LAG- och DIF-funktionerna tillgängliga i DATA-steget inte sanna fördröjnings- och skillnadsfunktioner.

Snarare är LAG och DIF köfunktioner som kommer ihåg och returnera argumentvärden från tidigare samtal. LAG-funktionen kommer ihåg det värde du skickar till den och returnerar som resultat det värde du skickade till det vid föregående samtal. DIF-funktionen fungerar på samma sätt men returnerar skillnaden mellan det aktuella argumentet och det minnesvärde. (LAG och DIF returnerar ett saknat värde första gången funktionen anropas.)

En sann fördröjningsfunktion returnerar inte värdet på argumentet för ”föregående samtal”, liksom DATA-steget LAG och DIF-funktioner. Istället returnerar en sann fördröjningsfunktion värdet av sitt argument för ”föregående observation”, oavsett sekvensen av tidigare anrop till funktionen. För att en sann fördröjningsfunktion ska vara möjlig måste det vara klart vad den ”tidigare observationen” är.

Om data sorteras kronologiskt, fungerar LAG och DIF som sanna fördröjnings- och skillnadsfunktioner. Om du är osäker, använd PROC SORT för att sortera dina data innan du använder LAG- och DIF-funktionerna. Se upp för saknade observationer, vilket kan få LAG och DIF att returnera värden som inte är de faktiska fördröjnings- och skillnadsvärdena

DATA-steget är ett kraftfullt verktyg som kan läsa valfritt antal observationer från valfritt antal inmatningsfiler eller datamängder, kan skapa valfritt antal utdatamängder och kan skriva valfritt antal utdataobservationer till någon av utdatamängderna, allt i samma program. Således är det i allmänhet inte klart vad ”tidigare observation” betyder i ett DATA-stegprogram. I ett DATA-stegprogram existerar den ”tidigare observationen” bara om du skriver programmet på ett enkelt sätt som gör detta koncept meningsfullt.

Eftersom den tidigare observationen i allmänhet inte är klart definierad är den det går inte att göra verkliga fördröjnings- eller skillnadsfunktioner för DATA-steget. Istället tillhandahåller DATA-steget köfunktioner som gör det enkelt att beräkna förseningar och skillnader.

Jag hoppas att det här svaret hjälper

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *