최상의 답변
안녕하세요.
이 질문에 대해 제가 이해하는대로 대답하겠습니다. . DATA 단계는 변수 또는 표현식의 이전 값에 액세스하기위한 두 개의 함수, LAG 및 DIF를 제공합니다. 이러한 함수는 계열의 지연과 차이를 계산하는 데 유용합니다.
간단하게 사용하면 LAG와 DIF가 지연 및 차이 함수로 작동합니다. 그러나 이름에도 불구하고 DATA 단계에서 사용할 수있는 LAG 및 DIF 함수는 진정한 지연 및 차이 함수가 아니라는 점을 기억하는 것이 중요합니다.
대신 LAG와 DIF는 기억하는 대기 함수입니다. 이전 호출에서 인수 값을 반환합니다. LAG 함수는 전달한 값을 기억하고 이전 호출에서 전달한 값을 결과로 반환합니다. DIF 함수는 동일한 방식으로 작동하지만 현재 인수와 기억 된 값의 차이를 반환합니다. (LAG 및 DIF는 함수가 처음 호출 될 때 누락 된 값을 반환합니다.)
진정한 지연 함수는 DATA 단계 LAG와 마찬가지로 “이전 호출”에 대한 인수 값을 반환하지 않습니다. DIF 기능. 대신, 진정한 지연 함수는 함수에 대한 이전 호출 순서에 관계없이 “이전 관찰”에 대한 인수 값을 반환합니다. 따라서 진정한 지연 함수가 가능하려면 “이전 관찰”이 무엇인지 명확해야합니다.
데이터가 시간순으로 정렬되면 LAG와 DIF가 실제 지연 및 차이 함수로 작동합니다. 확실하지 않은 경우 LAG 및 DIF 기능을 사용하기 전에 PROC SORT를 사용하여 데이터를 정렬하십시오. LAG 및 DIF가 실제 지연 및 차이 값이 아닌 값을 반환 할 수있는 누락 된 관찰에주의하십시오.
DATA 단계는 여러 입력 파일에서 원하는 수의 관찰을 읽을 수있는 강력한 도구입니다. 또는 데이터 세트, 임의의 수의 출력 데이터 세트를 생성 할 수 있으며 모든 출력 데이터 세트에 임의의 수의 출력 관찰을 기록 할 수 있습니다. 따라서 일반적으로 DATA 스텝 프로그램에서 “이전 관찰”이 무엇을 의미하는지 명확하지 않습니다. DATA 스텝 프로그램에서 “이전 관찰”은이 개념을 의미있게 만드는 간단한 방법으로 프로그램을 작성해야만 존재합니다.
일반적으로 이전 관찰은 명확하게 정의되지 않았기 때문에 DATA 스텝에 대한 진정한 지연 또는 차이 함수를 만들 수 없습니다. 대신 DATA 단계는 지연과 차이를 쉽게 계산할 수있는 대기열 함수를 제공합니다.
이 답변이 도움이되기를 바랍니다.