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

[관측치 선택] 조건문을 만족하는 관측치 출력 - 7

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

포스팅 목차

     

    7. Display the names of all employees who are working in department number 10.

     

    * Emp테이블에서 부서 10에서 근무하고 있는 전체 직원의 이름을 출력하시오


    • Oracle : where 구문
    • 파이썬 Pandas : 행 인덱싱, query 구문
    • R 프로그래밍 : 행 인덱싱, which 구문, subset 구문
    • R Dplyr Package : filter 구문
    • R sqldf Package : where 구문
    • Python pandasql Package : where 구문
    • R data.table Package : 행 인덱싱
    • SAS Proc SQL : where 구문
    • SAS Data Step : where 구문, IF 구문
    • Python Dfply Package : filter_by 구문
    • 파이썬 Base 프로그래밍 :

     


    1. 오라클(Oracle)

     

    Oracle Programming
    select ename 
    from   emp 
    where  deptno=10;

     


    2. 파이썬(Pandas)

    • emp 테이블에서 부서번호가 10인 부서를 선택한다.
    Python Programming
    emp[emp['deptno'] == 10][['ename']]

     

    Results
      ename
    6 CLARK
    8 KING
    13 MILLER

     


     

    Python Programming
    emp.loc[emp.deptno == 10, ["ename"]]

     

    Results
      ename
    6 CLARK
    8 KING
    13 MILLER

    • query 구문을 사용하여서 emp 테이블에서 부서번호가 10인 부서를 선택한다.
    Python Programming
    emp.query('deptno == 10')[["ename"]]

     

    Results
      ename
    6 CLARK
    8 KING
    13 MILLER

     


    3. R Programming (R Package)

    • emp 테이블에서 부서번호가 10인 부서를 선택한다.
    R Programming
    %%R
    emp[emp$deptno == 10, c("ename") ]

     

    Results
    # A tibble: 3 x 1
      ename 
      <chr> 
    1 CLARK 
    2 KING  
    3 MILLER

     


    • which구문을 사용하여서 emp 테이블에서 부서번호가 10인 부서를 선택한다.
    R Programming
    %%R
    emp[which(emp$deptno == 10), c("ename") ]

     

    Results
    # A tibble: 3 x 1
      ename 
      <chr> 
    1 CLARK 
    2 KING  
    3 MILLER

     


    • subset구문을 사용하여서 emp 테이블에서 부서번호가 10인 부서를 선택한다.
    R Programming
    %%R
    subset(emp,subset= deptno == 10,select=ename)

     

    Results
    # A tibble: 3 x 1
      ename 
      <chr> 
    1 CLARK 
    2 KING  
    3 MILLER

     


    4. R Dplyr Package

    filter 구문을 사용하여서 emp 테이블에서 부서번호가 10인 부서를 선택한다.

    R Programming
    %%R
    emp %>% filter(deptno == 10) %>% dplyr::select(ename)

     

    Results
    # A tibble: 3 x 1
      ename 
      <chr> 
    1 CLARK 
    2 KING  
    3 MILLER

     


    5. R sqldf Package

    • emp 테이블에서 부서번호가 10인 부서를 선택한다.
    R Programming
    %%R
    
    sqldf("select ename from emp where deptno=10")

     

    Results
       ename
    1  CLARK
    2   KING
    3 MILLER

     


    6. Python pandasql Package

    • emp 테이블에서 부서번호가 10인 부서를 선택한다.
    Python Programming
    ps.sqldf("select ename from emp where deptno=10")

     

    Results
      ename
    0 CLARK
    1 KING
    2 MILLER

     


    7. R data.table Package

    • emp 테이블(DT)에서 부서번호가 10인 부서를 선택한다.
    R Programming
    %%R
    
    DT          <- data.table(emp)
    dept_DT     <- data.table(dept)
    
    DT[ deptno==10 , .( ename )]

     

    Results
        ename
    1:  CLARK
    2:   KING
    3: MILLER

     


    8. SAS Proc SQL

     

    SAS Programming
    %%SAS sas
    
    PROC SQL;
      create table statsas_1 as
        select empno,
               ename
        from   emp
        where  deptno = 10;
    QUIT;
    PROC PRINT;RUN;

     

    Results
    OBS empno ename
    1 7782 CLARK
    2 7839 KING
    3 7934 MILLER

     


    9. SAS Data Step

     

    SAS Programming
    %%SAS sas
    
    DATA statsas_2;
     SET EMP;
         keep empno ename;
         where deptno = 10;
    RUN;
    PROC PRINT;RUN;

     

    Results
    OBS empno ename
    1 7782 CLARK
    2 7839 KING
    3 7934 MILLER

     


    10. Python Dfply Package

     

    Python Programming
    emp >> filter_by(X.deptno == 10) >> select(X.ename)

     

    Results
      ename
    6 CLARK
    8 KING
    13 MILLER

     

     


     

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

     

    반응형

    댓글