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

[수치형 함수] 나머지 반환 함수-Mod 함수 - 124 (오라클 SQL, R, Python, SAS)

by 기서무나구물 2022. 12. 14.

포스팅 목차

     

    124. Display those employees whose salary is ODD value?

     

    * 급여가 홀수인 직원을 출력하시오.


    • Oracle : Mod() 함수
    • 파이썬 Pandas : %
    • R 프로그래밍 : %%, numbers::mod()
    • R Dplyr Package : %%, numbers::mod()
    • R sqldf Package : %
    • Python pandasql Package : %
    • R data.table Package : %%, numbers::mod()
    • SAS Proc SQL : Mod() 함수
    • SAS Data Step : Mod() 함수
    • Python Dfply Package : %
    • 파이썬 Base 프로그래밍 :

     


    1. Oracle(오라클)

    오라클 함수 중에 홀수와 짝수를 확인하기 위한 별도의 함수는 존재하지 않기 때문에 Mod 함수를 통하여 홀수와 짝수를 구분할 수 있다.

    이 문제에서 홀수인 급여를 수령하는 직원의 정보를 확인하기 위하여 mod 함수를 사용하여 급여를 2로 나눈 나머지가 1인 직원을 출력한다.

     

    Oracle Programming
    select * 
    from   emp 
    where  mod(sal,2)=1;

     


    2. Python Pandas(파이썬)

    홀수인 급여를 수령하는 직원을 검색하기 위하여 급여를 2로 나눈 나머지가 1인 직원을 추출한다.

     

    Python Programming
    emp[emp.sal % 2 == 1]

     

    Results
      empno ename job mgr hiredate sal comm deptno
    3 7566 JONES MANAGER 7839.0 1981/04/02 2975 NaN 20

     


    3. R Programming (R Package)

    홀수인 급여를 수령하는 직원을 검색하기 위하여 급여를 2로 나눈 나머지가 1인 직원을 추출한다.

     

    R Programming
    %%R
    
    emp[emp$sal %% 2 == 1, ]

     

    Results
    # A tibble: 1 x 8
      empno ename job       mgr hiredate     sal  comm deptno
      <dbl> <chr> <chr>   <dbl> <date>     <dbl> <dbl>  <dbl>
    1  7566 JONES MANAGER  7839 1981-04-02  2975    NA     20

     


    홀수인 급여를 계산하기 위하여 numbers::mod() 함수를 사용하여 급여를 2로 나눈 나머지가 1인 직원을 출력한다.

     

    R Programming
    %%R
    
    library(numbers)
    
    emp[numbers::mod(emp$sal,2) == 1, ]

     

    Results
    # A tibble: 1 x 8
      empno ename job       mgr hiredate     sal  comm deptno
      <dbl> <chr> <chr>   <dbl> <date>     <dbl> <dbl>  <dbl>
    1  7566 JONES MANAGER  7839 1981-04-02  2975    NA     20

     


    4. R Dplyr Package

    급여가 홀수인 직원을 검색하기 위하여 급여를 2로 나눈 나머지가 1인 직원을 추출한다.

     

    R Programming
    %%R
    
    emp %>% dplyr::filter(sal %% 2 == 1)

     

    Results
    # A tibble: 1 x 8
      empno ename job       mgr hiredate     sal  comm deptno
      <dbl> <chr> <chr>   <dbl> <date>     <dbl> <dbl>  <dbl>
    1  7566 JONES MANAGER  7839 1981-04-02  2975    NA     20

     


    5. R sqldf Package

    홀수인 급여를 계산하기 위하여 mod 함수를 사용하여 급여를 2로 나눈 나머지가 1인 직원을 출력한다.

     

    R Programming
    %%R
    
    sqldf("select * from emp where sal % 2 =1; ")

     

    Results
      empno ename     job  mgr   hiredate  sal comm deptno
    1  7566 JONES MANAGER 7839 1981-04-02 2975   NA     20

     


    6. Python pandasql Package

    홀수인 급여를 계산하기 위하여 mod 함수를 사용하여 급여를 2로 나눈 나머지가 1인 직원을 출력한다.

    Python Programming
    ps.sqldf(" select * from emp where sal % 2 =1;")

     

    Results
      empno ename job mgr hiredate sal comm deptno
    0 7566 JONES MANAGER 7839.0 1981/04/02 2975 None 20

     


    7. R data.table Package

    홀수인 급여를 계산하기 위하여 mod 함수를 사용하여 급여를 2로 나눈 나머지가 1인 직원을 출력한다.

     

    R Programming
    %%R
    
    DT          <- data.table(emp)
    
    DT[ sal %% 2 == 1, ]

     

    Results
       empno ename     job  mgr   hiredate  sal comm deptno
    1:  7566 JONES MANAGER 7839 1981-04-02 2975   NA     20

     


    8. SAS Proc SQL

    홀수인 급여를 계산하기 위하여 mod 함수를 사용하여 급여를 2로 나눈 나머지가 1인 직원을 출력한다.

    SAS Programming
    %%SAS sas
    
    PROC SQL;
      CREATE TABLE STATSAS_1 AS
        select * 
        from   emp 
        where  mod(sal,2)=1;
    QUIT;
    PROC PRINT;RUN;

     


    Results
    OBS empno ename job mgr hiredate sal comm deptno
    1 7566 JONES MANAGER 7839 1981-04-02 2975 . 20

     


    9. SAS Data Step

     

    SAS Programming
    %%SAS sas
    
    DATA STATSAS_2;
     SET EMP;
         WHERE mod(sal,2)=1;
    RUN;
    
    PROC PRINT;RUN;

     

    Results
    OBS empno ename job mgr hiredate sal comm deptno
    1 7566 JONES MANAGER 7839 1981-04-02 2975 . 20

     


    10. Python Dfply Package

     

    Python Programming
    emp >> filter_by(X.sal % 2 == 1)

     

    Results
      empno ename job mgr hiredate sal comm deptno
    3 7566 JONES MANAGER 7839.0 1981/04/02 2975 NaN 20

     


     

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

    반응형

    댓글