본문 바로가기

분류 전체보기163

[SAS] sas에서 그룹(key)별로 특정값들의 조합이 있는 경우의 그룹만 추출하는 방법 sas에서 그룹(key)별로 특정값들이 조건에 따라 존재하는 경우의 그룹(key)만 추출하는 방법에 대해서 알아보자. 아래 그림을 통해서 어떤 경우(조건)들의 추출하는지에 대해서 알아보자. 위의 왼쪽이 샘플데이터이다. key(그룹)별로 code값에 조건의 값들이 있는 경우를 출력하는 것이다. 조건은 key별로 A, B, C가 존재하는 경우, A와 C가 존재하는 경우, B와 C가 존재하는 경우의 key값만 출력한다. key별로 A와 B조합만 있는 경우는 출력하지 않는다. key값 1인 경우는 code에 A,B,C가 있으므로 출력 key값 2인 경우 10인 경우는 code에 A,C가 있으므로 출력 key값 3인 경우는 code에 B,C가 있으므로 출력 key값 4인 경우는 A, B의 조합이므로 출력하지 않는.. 2014. 5. 26.
[SAS] sas에서 코딩방법에 따른 처리 속도의 차이(if문의 위치) sas로 빅데이터를 핸들링하면서 항상 답답하고 문제되는것이 처리속도 시간이다. 큰데이터를 다룰수록 속도와의 전쟁인데, 각자 자기만의 스타일로 다양하게 프로그래밍하지만 코딩을 가장 최적화 시키면, 데이터가 크면 클수록 처리속도 시간의 차이는 엄청나다. 아래의 간단한 예를 보고 data step에서 if문 코딩을 최적화하는 방법을 알아보도록 하자. 위의 두개의 데이터셋 생성의 조건은 다음과 같다. test 데이터셋의 department변수에서 기획부값만 가져오고 각각 사칙연산의 결과를 나타내는 변수를 생성하라. 위의 결과 처럼 코딩의 순서는 다르지만 결과는 같다. 하지만 만약 이 데이터가 예제와 달리 방대한 양의 데이터라면 이 두가지의 코딩 처리속도는 분명히 차이가 난다. 왼쪽의 코딩은 if문이 먼저 나타나.. 2014. 5. 16.
[EXCEL] 엑셀2007 데이터분석 t-검정: 이분산 가정 두집단 알아보기 엑셀2007 데이터분석 t-검정: 이분산 가정 두집단 알아보기에 대해서 알아보자. 데이터 분석의 t-검정 이분산 가정 두집단은 두 모분산이 서로 다를 경우 독립인 두 정규모집단의 모평균이 같은지를 검정할때 사용이 된다. 아래그림처럼 엑셀 2007에서 데이터-데이터분석-t검정 : 이분산 가정 두집단을 클릭한후 확인을 클릭하면 사용가능 t-검정: 이분산 가정 두집단의 설정 방법은 이전에 게시한 등분산 가정과 유사하기 때문에 아래 주소 참조 http://sasbigdata.com/142 2014. 5. 16.
[EXCEL] 엑셀2007 데이터분석 t-검정: 등분산 가정 두집단 알아보기 엑셀2007 데이터분석 t-검정: 등분산 가정 두집단 알아보기에 대해서 알아보자. 데이터 분석의 t-검정 등분산 가정 두집단은 두 모분산이 같을 경우 독립인 두 정규모집단의 모평균이 같은지를 검정할때 사용이 된다. 아래그림처럼 엑셀 2007에서 데이터-데이터분석-t검정 : 등분산 가정 두집단을 클릭한후 확인을 클릭하면 사용가능 위와 같이 t-검정: 등분산 가정 두집단 창이 나타나게 되는데 변수1과 변수2는 그림과 같이 각각의 데이터 범위를 지정해주면 된다. 데이터의 최상단부분에 변수명이 있을경우 이름표에 체크를 한다. 이하 상황에 맞게 설정후 확인을 누르면 아래와 같은 분석 결과가 나타난다. 결과 해석 단측 검정 p값(이하 유의확률값) 단측 검정 유의확률값이 0.00248이고, 양측 검정 유의확률값 또한.. 2014. 5. 16.
[EXCEL] 엑셀2007 데이터분석 z-검정: 평균에 대한 두집단 알아보기 EXCEL 엑셀2007의 데이터분석에서 z-검정: 평균에 대한 두집단을 활용하는 방법에 대해서 알아보자. 통계 데이터 분석의 z-검정 평균에 대한 두집단은 모분산을 알고 있는 상태에서 독립인 두 정규모집단의 모평균이 같은지 차이가 있는지를 검정하는 방법이다. 엑셀2007에서 데이터-데이터 분석-z검정 평균에대한 두집단을 클릭한후 확인을 클릭하면 사용할 수가 있다. 아래그림참조 위처럼 실행하면 아래와 같은 창이 나타나게 된다. 변수1 입력 범위와 변수2 입력 범위에는 각각 해당하는 데이터의 범위를 입력하면 된다. 가설평균차는 두 표본평균의 차를 입력하는 공간인데 두 표본평균이 같은지를 검정하기 위함이므로 0을 입력한다. (입력하지 않은 이유는 공백으로 둘 경우 엑셀에서 자동으로 0으로 인식한다.) 분산-기.. 2014. 5. 15.
[SAS] sas에서 그룹별로 여러변수에 특정값이 포함하는 key값만 출력[sql문사용] sas에서 그룹별로 여러변수에 특정값이 포함하는 key값만 출력하는 방법을 알아보자. 이전에도 비슷한 작업을 하였는데 이번에는 sql문을 이용해 아주 간단하게 처리하는 방법에 대해서 알아본다. 아래의 그림을 참조하자. 기존의 데이터에서 key그룹별로 code1과 code2에 특정값 a가 있는 경우의 키값들이 몇개인지 알아보는 방법이다. [코딩과정] data test; input key$ code1$ code2$@@; cards; 111 a b 777 g g 777 t t 111 b b 111 b a 222 a b 222 a b 333 b b 555 a a 333 b a 333 b b 666 a a 444 a b 444 b a 666 b a 666 a b ; run; proc sql; create tabl.. 2014. 5. 15.
[EXCEL] 엑셀2007에서 데이터분석도구를 이용한 기술통계법 사용방법 엑셀2007에서 데이터분석 도구를 사용하면 기초통계량들을 한번에 출력하여 볼수가 있다. 엑셀2007에서 데이터분석의 기술통계법을 사용하는 방법을 알아보자. 엑셀2007에서 데이터-데이터 분석을 클릭하면 아래와 같은 창이 나타난다. 기술통계법을 클릭한 뒤 확인을 누르면 아래와 같은 창이 나타난다. 입력범위는 데이터의 범위를 설정한다. 데이터의 첫째행에 변수명이 있다면 첫째 행 이름표 사용을 클릭해준다. 만약 데이터만 있다고 하면 체크를 해제한다. 출력 범위는 내가 출력하고 싶은곳을 설정하면 된다. 요약통계량을 체크하면 각종 기초통계량들을 출력해준다. 평균에 대한 신뢰 수준은 신뢰수준설정에 따른 모분산을 모르는 경우의 모평균에 대한 95% 신뢰구간에 사용되는 오차한계값을 계산하여 준다. K번째 큰값 작은 값.. 2014. 5. 14.
[SAS] sas에서 그룹별로 여러변수에 특정값이 공통으로 존재하는 경우 그룹수 추출방법 sas에서 그룹별로 여러 변수에 특정값이 공통으로 존재하는 경우 그룹 수를 추출하는 방법을 알아보자. 예를 들어 보면 아래의 그림처럼 code1과 code2에 a라는 특정값이 그룹별로 모두 존재하는 경우에 해당하는 그룹이 몇개인지 알아보는 방법이다. 위의 그림은 예를 들어 설명한 것이고, 실제 사용한 예제데이터는 다른 데이터이지만 형식은 같다. [코딩과정] /*예제데이터 생성*/ data h; input key$ code1$ code2$; cards; 111 a b 111 b b 111 b a 111 a a 222 a b 222 a b 333 b b 222 b b 333 b b 333 b a 333 b b 444 a b 444 b a 555 a b 555 a b 666 a a ; run; /*code1이.. 2014. 5. 14.
[SAS] sas에서 그룹별로 각각 두 개 이상 변수에 특정값이 포함된 경우 추출하는 방법 sas에서 그룹별로 여러 변수에 특정값이 있는 경우의 그룹만 추출하는 방법을 알아보도록 하자. 역시나 언어로 이해하기는 어려우니 그림을 통해서 무엇을 할 것인가에 대해 알아보자. 위의 그림을 통한 설명처럼 간단하게 key(그룹)별로 여러변수에 특정값이 존재하는 경우만 출력한다는 것이다. [코딩과정] /*예제 데이터 생성*/ data h; input key$ code1$ code2$; cards; 111 a b 111 b b 111 b a 222 a b 222 a b 333 b b 333 b a 333 b b 444 a b 444 b a ; run; /*원데이터에서 code1에 a값이 있는 키값만 출력*/ data h1(drop=code1 code2); set h; if code1='a'; run; /*키.. 2014. 5. 14.
[SAS] sas에서 그룹별로 순서대로 번호 매기는 방법 sas에서 그룹별(중복값들에 대해)로 각 순서를 매기는 방법에 대하여 알아보자. 예를 들어 설명하면 1이라는 값이 3개가 있으면 새로운 변수를 생성해 1이라는 값 옆에 1부터 3까지 생성하는 것이다. [코딩] /*예제데이터 a 생성*/ data a; input jin@@; cards; 1 1 1 2 2 2 2 2 3 3 ; run; /*예제데이터는 데이터가 순서대로이지만 원래는 proc sort를 그룹이 되는 변수별로 실시해줘야됨*/ proc sort data=a; by jin; run; /*새로운 변수를 생성, 그룹별로 1부터 누적값을 만들어줌*/ data b; set a; by jin; if first.jin=1 then n_jin=0; n_jin+1; run; [결과] 위와 같이 코딩을 실행하면 아.. 2014. 5. 13.
[SAS] sas에서 두개의 데이터셋 left join후 우측데이터 부분 모두 제거방법 sas에서 두개의 데이터셋 left join후 우측데이터 부분 모두 제거하는 방법을 알아보자. 글로써는 잘 이해가 되지 않으므로 아래의 그림을 통해 어떻게 조인할 것인지 확인하자. 위 그림처럼 hwi1 데이터셋과 hwi2 데이터셋을 left join을 하는데 hwi2에 해당하는 데이터셋은 제거하고 hwi1의 데이터만 추출하는 것이다. 그림처럼 hwi1과 hwi2의 공통되는 부분또한 hwi2에도 포함되므로 제거가 된다. hwi1의 단독데이터만 추출한다고 보면 될 것 같다. data step구문과 sql구문 두가지 방법을 사용해서 코딩을 해보자. 아래의 코딩 사진 처럼 data step과 sql코딩을 따라가면 우리가 원하는 결과를 추출할 수가 있다. 당연히 구문만 다를 뿐 결과는 같은 결과를 추출한다. [코.. 2014. 5. 12.
[SAS] sas에서 그룹별로 특정값이 있는 경우 체크하는 방법 sas에서 그룹별로 특정값이 있는 경우를 체크하는 방법을 알아보자. 아래의 예제를 통해 알아보면 key변수를 중복값이 있는 그룹이라고 보면 key값 별로 code에 a라는 값이 있는 경우를 찾는 것이다. [코딩 과정 설명] /* 샘플데이터 생성 작업*/ data test; input key$ code$; cards; 111 a 333 s 222 s 111 a 111 s 222 s 333 s 444 a 222 s ; run; /*code에 a값만 추출한 뒤. check라는 변수를 생성해 Y라는 값을 주고 code값은 드랍시킨다.*/ data test2(drop=code); set test; if code='a'; check='Y'; run; /*위에서 추출한 데이터의 key값들의 중복값을 제거 한다.*/ .. 2014. 5. 9.