반응형 의학통계20 SAS에서 Wide, Long 포맷 데이터 변환하기 SAS에서 Wide, Long 포맷 데이터 변환하기 SAS에서 Long format 으로 된것은 wide format 으로 wide format을 다시 long format으로 데이터 변환하는 것을 예제를 통해 간단하게 알아보겠습니다. ID별로 bmi, waist를 3번 측정한 값입니다. data test_data; input ID $3. gender $2. bmi1 bmi2 bmi3 wc1 wc2 wc3; datalines; A01 M 24 25 26 80 85 86 A02 M 25 24 25 80 78 81 A03 F 26 25 24 85 84 80 A04 F 20 21 22 75 76 77 ; run; Wide 를 Long format 으로 data long_test_data; set test_da.. 2022. 7. 4. 성능향상을 위한 SAS코딩 Tip 성능향상을 위한 SAS코딩 Tip 데이터 용량이 점점 커지면서 SAS 코딩할때에도 효율적인 코딩이 필요해 지고 있습니다. 아주 간단하게 몇가지를 코딩습관으로 가지게 되면 용량이 큰 데이터를 handling할때 성능향상에 도움이 될 것으로 생각됩니다. 간단한 것부터 정리해 나가보겠습니다. 데이터 셋의 속성변환은 Proc datasets 를 이용하기 날짜나 숫자의 경우 데이터셋을 만든 후 포맷문을 통해 속성을 변환할때 Data Step 문 대신 Proc Datasets 문을 사용하는 것이 코드의 성능향상에 유리합니다. Data Step 문은 속성을 변환할때 전체 data를 읽는 과정이 있기때문에 시간이 더 사용됩니다. EX. 날짜 포맷을 yyyy-mm-dd 형태로 변경하고, 숫자는 소숫점 한자리로 표현하고,.. 2022. 6. 30. 매개효과 분석 - Mediation 매개효과 분석 - Mediation Reponse variable(=Y)와 인과관계가 있는 predictor(=X)가 있을때, X가 어떤 중재변수에 의해 일부 또는 전체적인 영향을 받을때 그때 그 중재 변수를 매개변수(Mediator=M)라고 합니다. 즉, M mediate the effect of X on Y 로 표현할 수 있습니다. 이런 매개효과분석에는 여러가지 방법이 있지만 제일 고전적인 방법인 Baron & Kenny 방법과 SAS의 Proc causalmed 를 예제를 통해 알아 보겠습니다. 매개효과분석은 사회과학 분야(심리학 등)에서 많이 사용되는데 요즘은 의학 논문에서도 가끔 활용되고 있는듯 합니다. 아래 예제는 SAS support 를 참고해서 정리한것입니다. 자세한 설명은 SAS supp.. 2022. 6. 24. SAS에서 중복된 데이터 제거하기 SAS에서 중복된 데이터 제거하기 중복된 데이터는 경우의 수가 다양합니다. 몇 가지의 경우에 대해 SAS data 구문의 first.ID, last.ID 와 proc sort 의 nodupkey 를 이용하여 중복된 record 를 제거해 보겠습니다. data test_data; input ID $ gender $ bmi; datalines; A01 M 24 A01 M 24 A01 M 23.5 A02 M 26 A02 M 25 A02 M 24 A02 M 26.5 A03 M 24 A03 M 25 A04 M 25.5 A05 M 25 A05 M 25.7 A05 M 26 B01 F 24 B01 F 25 B01 F 24.5 B02 F 25 B02 F 25 B02 F 26 B02 F .. 2022. 6. 23. Univariate 를 이용하여 percentile 구하기 Univariate 를 이용하여 percentile 구하기 Proc univariate 를 이용해서 백분위수(percentile)를 구할 수 있습니다. 제일 작은 값을 0, 제일 큰 값을 100이라고 한다면, 이 데이터의 25분위수는 25가 되고, 50 분위수는 중앙값(median)이 됩니다. S000 ~ S100의 ID를 가지는 0~100까지의 숫자(var_num)를 변수로 가지는 데이터를 생성합니다. data test_Data; length ID $5.; do i=1 to 101; j=i-1; len=length(compress(j)); if len=1 then ID=compress('S')||'00'||compress(j); else if len=2 then ID=.. 2022. 6. 23. Proc Rank 를 이용한 SAS 순위 정하기 Proc Rank 를 이용한 SAS 순위 정하기 데이터의 순위를 정해서 동일한 데이터셋에 새로운 순위 변수를 만드는 방법을 Proc Rank 를 이용하여 해보겠습니다. 전체 순위를 매기는 것 뿐만아니라 특정 그룹내에서 그룹내 순위매기기 또는 median 기준으로 2개 그룹나누기, Tertile, Quartile, Quintile 등 여러용도로 사용할 수 있는 유용한 SAS Procedure입니다. data test_data; input subject $ gender $ bmi; datalines; A01 M 25.2 A02 F 23.4 A03 F 24.1 A04 M 24.5 A05 M 27.4 A06 M 27.1 A07 F 22.1 A08 F 25.1 A09 F 24.7.. 2022. 6. 23. 이전 1 2 3 4 다음