Archive

Archive for the ‘까먹지 말자’ Category

[SAS] 숫자가 포함된 문자열의 정렬

August 8th, 2008

Q. 다음과 같은 데이터셋이 존재한다고 했을 때, 문자열변수 안의 숫자의 크기순으로 정렬하고 싶지만, 이대로 PROC SORT를 이용하면 A-1, A-10, A-12, A-2의 순으로 정렬됩니다. 문자열 안의 숫자의 크기 순으로 정렬하는 방법은 없나요?

Picture 1.png

A. 정렬을 하기 전에 id 변수의 숫자의 앞에 0을 추가할 필요가 있습니다. 0을 추가하려면 다음과 같은 과정이 필요합니다.

  1. scan 함수를 이용하여 변수를 “-” 문자를 기준으로 분리
  2. Zw.d 포맷을 이용하여 수치 문자열의 앞에 0을 추가
  3. CATX함수를 이용하여 전후의 공백을 없애고 분할할 문자열을 연결

예)

DATA test;
INPUT id $ age $ @@;
DATALINES;
A-1 10 A-2 15 A-3 9 A-5 5 A-8 6 A-9 3 A-10 12 A-12 7
B-3 9 B-5 3 B-8 4 B-9 6 B-11 7 B-15 10
;

DATA test2;
FORMAT id3 age;
SET test;

ID1 = SCAN(id,1,'-');
ID2 = PUT(INPUT(SCAN(id, 2, '-'),best.),Z2.);
ID3 = CATX('-', id1, id2);
RUN;

PROC SORT DATA=test2(KEEP = id3 age);
BY id3;
RUN;

SAS ,

새로운 SNP case-control 연관분석 방법 OMTT

August 8th, 2008
  • 요점 정리
    • SNP를 이용한 Case-Control 연관분석을 하고자 할 때, 가법 형식(additive mode)에 대해 trend 검정을, 우성 형식(dominant mode)에 대해 우성 검정을, 열성 형식(recessive mode)에 대해 열성 검정을 할 때가 있다. 또한, 어떤 유전 형식을 따르는지 알 수 없지만, 그 중 하나와 일치한다면 연관이 있다고 생각하여, 세 가지 검정 중 가장 유의한 검정결과를 채택하는 방법을 사용할 때도 있다.
    • Risk allele의 동형접합체(homozygote)와 non risk allele의 동형접합체의 리스크 가중치를 각각 1, 0으로 설정할 때, 우성, 열성, 가법 형식은 이형접합체(heterozygote)의 리스크 가중치를 1, 0, 0.5로 설정한 경우이므로, 우성과 열성의 사이는 이형접합체의 가중치를 0 이상 1 이하로 생각할 수 있다. Optimal dose trend test(OMTT)는 이러한 우성, 열성 간의 형식을 연속적인 대상으로 간주하여 검정하는 방법이다.
    • 실제 계산은 2X3 분할표로부터 자유도 2의 카이제곱 통계치와 우성 형식, 열성 형식으로 부터의 2X2 분할표를 만들어 자유도 1인 카이제곱 통계치를 계산하여 그 중 하나를 검정통계량으로 사용한다.
    • 자세한 해설과 Java로 만든 애플리케이션의 다운로드는 이곳에서

유전통계학 , , ,

[SAS] 복수의 문자변수의 값을 연결해 하나의 변수로 만드는 방법

August 7th, 2008

Q. 복수의 문자변수 값을 컴마(,)로 연결해 하나의 변수로 만드는 방법은?

A. SAS 9 부터 추가된 CATX 함수를 이용하면 구분문자를 지정하여 문자열로 만들 수 있습니다.

DATA _NULL_;
   dlm=",";
   char1="Hong";
   char2="GilDong";
   char3="15";
   char4="A";
   results=CATX(dlm, OF char1-char4);

   PUT results;
RUN;

출력결과 : Hong,GilDong,15,A

SAS ,