2013-07-10 4 views
0

샘플 데이터를 관찰 라인을 읽기 :SAS/SAS 매크로 - 라인에 의해

PatID Strata1 Strata2 Allocated TG  
    1  1  1   T1 
    2  1  2   T2 
    3  2  3   T1 
    4  1  3   . 
    5  2  2   . 
    6  1  3   . 
    7  1  3   . 
    8  2  4   . 

나는 2 스트랫 (조건) 중 하나와 환자가 있습니다.

이전의 모든 환자에 대해 Strats와 TG를 기반으로 Allocated TG를 계산해야합니다. 위의 예에서 할당 된 TG는 예를 들어 3 명의 환자에게 있습니다. 4 환자에 대한

는 할당 된 TG는

이 Strata1의 값이란, 다음과 같이 계산됩니다. 얼마나 많은 이전 환자의 1 카운트가 1이

  • 이 경우 할당 된 TG T2에 할당 할 때

    1. 한 경우, 얼마나 많은 이전 환자의 수는 수를 몇으로, 할당 된 TG T1에 할당 얼마나 많은 이전 환자의 1 카운트가 각 계층에 따라 TG 할당 이전의 모든 환자의 Strata2.The 카운트를 들어, 1

    마찬가지로 할당 TG T2에 할당 할 때 이전의 환자는 할당 된 TG의 T1에 할당 .

    결국, 나는 각각에 대해 약간의 값을 얻을 것입니다. 출력 값에 따라, 지층 수가 적 으면 TG (T1/T2)가 할당 될 것입니다.

    이 후, 이전 4 명의 환자에 대해 계산해야하는 PatID5.Again을 계산해야합니다.

  • +2

    안녕하십니까. 원하는 계산에 대한 자세한 내용을 제공해야합니다. 나는 (n-1) 번째 관측을 기반으로 n 번째 관측까지 무언가를하고 싶다고 추측하고 있지만 더 많은 정보를 제공해야합니다. –

    +1

    달성하려는 목표의 작은 예를 제시 할 수 있다면 (6 행의 데이터와 예상대로), 많은 도움이 될 것입니다. 그러나 대부분의 경우, retain 문을 살펴 봐야합니다. – mvherweg

    +0

    안녕하세요. 둘 다, 제 질문을 업데이트하거나 개선했습니다. 지금보십시오. :) – user2568403

    답변

    0

    프로그래머는 빠른 성능을 위해 줄 단위로 처리하는 대신 일괄 처리 모드 방식을 선호합니다. 루프에서 firstobs와 obs를 사용할 수 있습니다. 배치 모드의 경우 1 행 단위로 obs-firstobs를 1000 또는 몇 가지 숫자로 사용하십시오. obs = firstobs + 1