본문 바로가기
통계프로그램 비교 시리즈/프로그래밍비교(Oracle,Python,R,SAS)

[기초 통계량 - 평균값 AVG 계산] 조건절을 만족하는 수치형 데이터 평균값 측정 - 34 (오라클 SQL, R, Python, SAS)

by 기서무나구물 2021. 8. 8.

포스팅 목차

     

    34. Display the average salary drawn by managers.

     

    * 관리자에게 지급되는 평균 급여를 계산하시오.


    • Oracle : avg()
    • 파이썬 Pandas : mean(), query()
    • R 프로그래밍 : colMeans(), subset()
    • R Dplyr Package : filter(), dplyr::summarise(), mean()
    • R sqldf Package : avg()
    • Python pandasql Package : avg()
    • R data.table Package : mean()
    • SAS Proc SQL : avg()
    • SAS Data Step : proc summary, mean=
    • Python Dfply Package : filter_by(), summarize(), .mean()
    • 파이썬 Base 프로그래밍 :

     


    1. 오라클(Oracle)

    • 직무가 관리직 직원을 선택 후 평균 급여(sal)를 출력
    Oracle Programming
    select avg(sal) as sal_avg
    from   emp 
    where  job = 'MANAGER';

     


    2. 파이썬(Pandas)

    • mean()을 사용하여서 관리직 직원의 평균 급여를 계산
    Python Programming
    (emp[emp['job'] == 'MANAGER']['sal']).mean()

     

    Results
    2758.3333333333335

     


    • Mean 함수
    Python Programming
    emp.query(' job == "MANAGER" ')[['sal']].mean()

     

    Results
    sal    2758.333333
    dtype: float64

     


    3. R Programming (R Package)

    • colMeans() 를 사용하여서 평균 급여를 계산
    R Programming
    %%R
    ## data.frame에 대하여 mean 함수 적용 안됨.
    ## class(emp[emp$job == 'MANAGER' , c("sal") ])
    
    colMeans(emp[emp$job == 'MANAGER' , c("sal") ])

     

    Results
         sal 
    2758.333 

     


    • ColMeans 함수
    R Programming
    %%R
    colMeans( subset(emp,subset= (job == 'MANAGER') , select=c(sal) ) )

     

    Results
         sal 
    2758.333 

     


    4. R Dplyr Package

    dplyr 패키지의 filter()를 사용하여서 관리직 직원을 선택 후 summarise(mean())를 사용하여서 평균 급여를 계산

    R Programming
    %%R
    emp %>% filter(job == 'MANAGER' ) %>% dplyr::summarise(avg_value = mean(sal))

     

    Results
    # A tibble: 1 x 1
      avg_value
          <dbl>
    1     2758.

     


    5. R sqldf Package

    • sqlite에서는 avg() 함수를 사용하여서 평균을 계산
    R Programming
    %%R
    sqldf("select avg(sal) from emp where job='MANAGER'")

     

    Results
      avg(sal)
    1 2758.333

     


    6. Python pandasql Package

    • Avg 함수
    Python Programming
    ps.sqldf("select avg(sal) from emp where job='MANAGER' ")

     

    Results
      avg(sal)
    0 2758.333333

     


    7. R data.table Package

    Data.table 패키지에서는 mean()를 사용하여서 판매직 직원의 평균 급여를 계산

    R Programming
    %%R
    
    DT          <- data.table(emp)
    dept_DT     <- data.table(dept)
    
    DT[job == "MANAGER", .(`sal_mean` = mean(sal, na.rm = TRUE))]

     

    Results
       sal_mean
    1: 2758.333

     


    8. SAS Proc SQL

    • AVG 함수
    SAS Programming
    %%SAS sas
    
    PROC SQL;
      CREATE TABLE STATSAS_1 AS
        SELECT AVG(SAL) AS SAL_AVG
        FROM   EMP A
        where  job='MANAGER';
    QUIT;
    PROC PRINT;RUN;

     

    Results
    OBS SAL_AVG
    1 2758.33

     


    9. SAS Data Step

    • Proc summary 와 Mean
    SAS Programming
    %%SAS sas
    
    PROC SUMMARY DATA=EMP;
         VAR SAL;
         OUTPUT OUT=STATSAS_2(DROP=_:) MEAN=SAL_MEAN;
         where  job='MANAGER';
    RUN;
    PROC PRINT;RUN;

     

    Results
    OBS SAL_MEAN
    1 2758

     


    10. Python Dfply Package

    • Mean 함수
    Python Programming
    emp >> filter_by( X.job=='MANAGER' ) >> summarize( sal_avg = X.sal.mean() )

     

    Results
      sal_avg
    0 2758.333333

     

     


     

    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE]   SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트

     

    반응형

    댓글