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

[변수 생성] 신규 변수를 생성하여 데이터 출력 - 5

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

포스팅 목차

    5. Display employee number and total salary for each employee.

    * 개별 사원의 사원번호(empno)과 총급여(sal)를 출력하시오.


    • [변수 생성] 신규 변수를 생성하여 출력
    • Oracle : select 구문
    • 파이썬 Pandas : 열 생성
    • R 프로그래밍 : 열 생성
    • R Dplyr Package : mutate 구문
    • R sqldf Package : select 구문
    • Python pandasql Package : select 구문
    • R data.table Package : 열 생성
    • SAS Proc SQL : Select 구문
    • SAS Data Step : 변수 생성
    • Python Dfply Package : mutate 구문
    • 파이썬 Base 프로그래밍 :

     


    1. 오라클(Oracle)

    • emp 테이블에서 사원번호와, 총급여(sal*comm)를 출력한다.
    Oracle Programming
    select empno, sal*comm as salary
    from   emp;

     


    2. 파이썬(Pandas)

    • emp 테이블에 총급여 칼럼을 생성 후에 사원번호와 총급여를 출력
    Python Programming
    emp["Tot_salary"] = emp["sal"] * emp["comm"]
    
    emp[["empno","Tot_salary"]]

     

    Results
      empno Tot_salary
    0 7369 NaN
    1 7499 480000.0
    2 7521 625000.0
    3 7566 NaN
    4 7654 1750000.0
    5 7698 NaN
    6 7782 NaN
    7 7788 NaN
    8 7839 NaN
    9 7844 0.0
    10 7876 NaN
    11 7900 NaN
    12 7902 NaN
    13 7934 NaN

     


    3. R Programming (R Package)

    • emp 테이블에 총급여 칼럼을 추가 생성 후에 사원번호와 총급여를 출력
    R Programming
    %%R
    
    emp["Tot_salary"] = emp["sal"] * emp["comm"]
    
    # emp[c("empno","Tot_salary")]
    emp[ , c("empno","Tot_salary")]

     

    Results
    # A tibble: 14 x 2
       empno Tot_salary
       <dbl>      <dbl>
     1  7369         NA
     2  7499     480000
     3  7521     625000
     4  7566         NA
     5  7654    1750000
     6  7698         NA
     7  7782         NA
     8  7788         NA
     9  7839         NA
    10  7844          0
    11  7876         NA
    12  7900         NA
    13  7902         NA
    14  7934         NA

     


    4. R Dplyr Package

    • emp 테이블에 총급여 칼럼을 추가 후에 select 구문을 사용하여서 사원번호와 총급여를 선택 후 출력
    R Programming
    %%R
    
    emp %>% mutate(Tot_salary = sal * comm) %>% select(empno, Tot_salary)

     

    Results
    # A tibble: 14 x 2
       empno Tot_salary
       <dbl>      <dbl>
     1  7369         NA
     2  7499     480000
     3  7521     625000
     4  7566         NA
     5  7654    1750000
     6  7698         NA
     7  7782         NA
     8  7788         NA
     9  7839         NA
    10  7844          0
    11  7876         NA
    12  7900         NA
    13  7902         NA
    14  7934         NA

     


    5. R sqldf Package

    • emp 테이블에서 사원번호와, 총급여(sal*comm)를 출력.
    R Programming
    %%R
    
    require(sqldf)
    sqldf("select empno, sal*comm Tot_salary from emp")

     

    Results
       empno Tot_salary
    1   7369         NA
    2   7499     480000
    3   7521     625000
    4   7566         NA
    5   7654    1750000
    6   7698         NA
    7   7782         NA
    8   7788         NA
    9   7839         NA
    10  7844          0
    11  7876         NA
    12  7900         NA
    13  7902         NA
    14  7934         NA

     


    6. Python pandasql Package

    • emp 테이블에서 사원번호와, 총급여(sal*comm)를 출력.
    Python Programming
    ps.sqldf("select empno, sal*comm Tot_salary from emp")

     

    Results
      empno Tot_salary
    0 7369 NaN
    1 7499 480000.0
    2 7521 625000.0
    3 7566 NaN
    4 7654 1750000.0
    5 7698 NaN
    6 7782 NaN
    7 7788 NaN
    8 7839 NaN
    9 7844 0.0
    10 7876 NaN
    11 7900 NaN
    12 7902 NaN
    13 7934 NaN

     


    7. R data.table Package

    • emp 테이블에서 사원번호와, 총급여(sal*comm)를 생성하여서 출력.
    R Programming
    %%R
    
    DT          <- data.table(emp)
    dept_DT     <- data.table(dept)
    
    DT[ , .(ename, Tot_salary = sal*comm)]

     

    Results
         ename Tot_salary
     1:  SMITH         NA
     2:  ALLEN     480000
     3:   WARD     625000
     4:  JONES         NA
     5: MARTIN    1750000
     6:  BLAKE         NA
     7:  CLARK         NA
     8:  SCOTT         NA
     9:   KING         NA
    10: TURNER          0
    11:  ADAMS         NA
    12:  JAMES         NA
    13:   FORD         NA
    14: MILLER         NA

     


    8. SAS Proc SQL

     

    SAS Programming
    %%SAS sas
    
    PROC SQL;
      create table statsas_1 as
        select ename, 
               SAL*COMM AS TOT_SALARY 
        from   emp;
    QUIT;
    PROC PRINT DATA=statsas_1(obs=5);RUN;

     

    Results
    OBS ename TOT_SALARY
    1 SMITH .
    2 ALLEN 480000
    3 WARD 625000
    4 JONES .
    5 MARTIN 1750000

     


    9. SAS Data Step

     

    SAS Programming
    %%SAS sas
    
    DATA statsas_2;
     SET EMP;
         TOT_SALARY = SAL*COMM;
         keep ename tot_salary;
    RUN;
    
    PROC PRINT DATA=statsas_2(obs=5);RUN;

     

    Results
    OBS ename TOT_SALARY
    1 SMITH .
    2 ALLEN 480000
    3 WARD 625000
    4 JONES .
    5 MARTIN 1750000

     


    10. Python Dfply Package

     

    Python Programming
    emp >>                                  \
       mutate(Tot_salary = X.sal*X.comm) >> \
       select(X.empno, X.Tot_salary)     >> \
       head(3)

     

    Results
      empno Tot_salary
    0 7369 NaN
    1 7499 480000.0
    2 7521 625000.0

     


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

     

    반응형

    댓글