BookmarkSubscribeRSS Feed

[SAS/R] 표준편차 - 조건절 활용

Started ‎04-30-2024 by
Modified ‎04-30-2024 by
Views 96

본 게시글은 SAS와 R 코드를 비교하는 글로 표준편차에 조건절을 활용한 코드를 비교하려고 합니다.

  • ​표준편차(Standard Deviation)

표준편차란 평균에 대한 오차입니다.

데이터 값이 평균을 기준으로 할 때, 각 데이터가 얼마나 흩어져 있는지를 확인하기 위해 사용됩니다.

 

 

 

image (6).png

 

 

 
 

Q. basic1.csv 데이터 셋에서 'f4'컬럼 값이 'ENFJ'와 'INFP'인 값들을 필터링 해 각 각 'f1' 칼럼의 표준편차 차이를 절대값으로 출력

- 사용 데이터 : basic1.csv

- 칼럼은 id / age / city / f1 / f2 / f3 / f4 / f5로 구성되어 있습니다.

 

image (7).png

 

 

 

[R]

 

library(dplyr)
df=read.csv('../input/bigdatacertificationkr/basic1.csv')

df %>% 
   filter(f4=='ENFJ' | f4=='INFP') %>% 
   group_by(f4) %>% 
   summarise(value=sd(f1,na.rm=T)) %>% 
   select(value) %>% apply(2,diff) %>% 
   abs

 

1. library(dplyr)

R은 오픈소스 프로그램으로 많은 유저들이 통계 도구들을 만들어 온라인 상에 무료로 기능을 쓸 수 있게 배포합니다.

패키지를 사용하기 위해서는 1) 패키지를 설치하고 2) 패키지를 로드 합니다.

1) insall.package(dplyr): 처음에 패키지를 설치하기 위해서 사용하는 명령문.

2) library(dplyr): 패키지를 설치한 후, 패키지를 불러오기 위한 명령문

dplyr 이란 패키지를 불러옵니다.

dplyr 패키지는 데이터 전처리에 특화된 패키지로 데이터를 처리하는 함수군으로 구성되어 있습니다.

%>% 체인 연산자 기호와 함께 데이터 전처리에서 사용됩니다.

2. read.csv

파일을 불러오는 명령문

3. group by

Group by function은 데이터를 그룹화하는데 사용합니다.

특정 열을 기준으로 데이터를 그룹화해 집계 함수를 설정하면 그룹 단위의 결과값을 출력합니다.

4. summarise

다양한 통계함수를 사용해서 데이터 셋의 특정 변수에 속한 값들을 하나의 통계값으로 요약하여 출력하는 function입니다.

summaize()와 동일한 function으로 평균, 중위값, 최소값, 최대값, 분산, 표준편차, 4분위값, 합계, 빈도수 등을 출력할 수 있습니다.

5. apply

행(Row) 또는 열(Column) 단위의 연산을 쉽게 할 수 있도록 지원하는 함수.

* 행(1) 단위로 mean 연산

apply(iris, 1, mean)

위 코드는 iris 데이터를 행(1) 단위로 평균값을 구하는 코드입니다.

* 열(column) 단위로 mean 연산

apply(iris, 2, mean)
 
 
 
 

[SAS]

 
/* 1. */
proc import datafile="/home/u45061472/basic1.csv" out=df
    dbms=csv replace;
    getnames=yes;
run;

/* 2. */
data filtered;
    set df;
    where f4 in ('ENFJ', 'INFP');
run;

/* 3. */
proc means data=filtered noprint;
    class f4;
    var f1;
    output out=sd_values std=sd_f1;
run;

/* 4 */
data diff_sd;
    set sd_values;
    diff_sd = abs(sd_f1_ENFJ - sd_f1_INFP);
run;

/* 5. */
proc print data=diff_sd noobs;
    var diff_sd;
run;
 
 

1. PROC IMPORT

외부 데이터를 불러오는 명령문입니다.

  • DATA = : 파일 위치 또는 파일명을 지정.

  • DBMS = : 파일 형식을 설정.

  • OUT = : 원본 데이터는 그대로 유지되고, 원하는 데이터 형식의 데이터를 생성합니다.

  • REPLACE : 이미 데이터가 존재하면 데이터 세트를 덮어쓰는 것 입니다. 코드를 실행할 때마다 데이터 세트의 이름을 변경하거나 삭제할 필요가 없어서 실행 단계를 단순화 할 수 있습니다.

2. Data filtered

새로운 filtered 라는 새로운 데이터셋을 생성합니다.

set df: 기존에 있던 df 데이터 셋을 읽습니다.

where f4 in ('ENFJ', 'INFP'): f4칼럼이 ENFJ 또는 INFP인 행들만 선택하는 조건절 입니다.

3. Proc means

데이터의 통계요약을 보여주는 명령문입니다.

noprint: 결과를 출력하지 않도록 설정합니다.

class f4: 그룹변수로 f4칼럼을 설정합니다. f4 변수의 각 범주에 대한 통계량을 계산합니다.

var f1: 분석할 변수를 세팅합니다.

4. Data diff_ed ~

set sd_values: sd_values라는 데이터 셋을 하나씩 읽어옵니다.

diff_Sd = abs(sd_f1_enfj - sd_f1_infp): ENFJ 그룹과 INFP 그룹의 표준편차를 계산합니다.

 

 

 image.png

Version history
Last update:
‎04-30-2024 07:21 AM
Updated by:
Contributors

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

Article Labels
Article Tags