포스팅 목차
9. Display employee number and names for employees who earn commission.
* 커미션을 받는 직원의 사원번호와 이름을 출력하시오.
- 파이썬 & R 패키지 호출 및 예제 데이터 생성 링크
- [관측치 & 변수 선택] 조건문을 만족하는 관측치 선택 후 특정 변수 출력
|
1. 오라클(Oracle)
Oracle Programming |
select empno, ename
from emp
where comm is not null
and comm>0;
2. 파이썬(Pandas)
Emp테이블에서 comm 변수에 값이 존재하는 직원을 선택하고, 해당 사원의 사원번호와 사원명을 출력.
Python Programming |
emp[ (emp['comm'].notnull()) & (emp['comm'] > 0 )][["empno","ename"]]
Results |
empno | ename | |
1 | 7499 | ALLEN |
2 | 7521 | WARD |
4 | 7654 | MARTIN |
Python Programming |
emp.loc[(emp.comm.notnull()) & (emp.comm > 0) , ["empno","ename"]]
Results |
empno | ename | |
1 | 7499 | ALLEN |
2 | 7521 | WARD |
4 | 7654 | MARTIN |
Emp테이블에서 query 구문을 사용하여서 comm 변수에 값이 존재하는 직원을 선택하고, 해당 사원의 사원번호와 사원명을 출력.
Python Programming |
# query 구문에서 isnull() / notnull() 구문 사용 : python engine instead of numexpr engin
emp.query('comm.notnull() & comm > 0', engine='python')[["empno","ename"]]
Results |
empno | ename | |
1 | 7499 | ALLEN |
2 | 7521 | WARD |
4 | 7654 | MARTIN |
3. R Programming (R Package)
Emp테이블에서 comm 변수에 값이 존재하는 직원을 선택하고, 해당 사원의 사원번호와 사원명을 출력.
R Programming |
%%R
emp[!is.na(emp$comm) & emp$comm > 0 , c("empno","ename") ]
Results |
# A tibble: 3 x 2
empno ename
<dbl> <chr>
1 7499 ALLEN
2 7521 WARD
3 7654 MARTIN
which 함수를 사용하여서 comm 변수에 값이 존재(NA가 아니고 0보다 큰)하는 직원을 선택하고, 해당 사원의 사원번호와 사원명을 출력한다.
R Programming |
%%R
emp[which(!is.na(emp$comm) & emp$comm > 0), c("empno","ename") ]
Results |
# A tibble: 3 x 2
empno ename
<dbl> <chr>
1 7499 ALLEN
2 7521 WARD
3 7654 MARTIN
Emp테이블에서 Subset 구문을 사용하여서 comm 변수에 값이 존재하는 직원을 선택하고, 해당 사원의 사원번호와 사원명을 출력.
R Programming |
%%R
subset(emp,subset= (!is.na(comm) & comm >0) , select=c(empno,ename) )
Results |
# A tibble: 3 x 2
empno ename
<dbl> <chr>
1 7499 ALLEN
2 7521 WARD
3 7654 MARTIN
4. R Dplyr Package
Emp테이블에서 filter구문을 사용하여서 comm 변수에 값이 존재하는 직원을 선택하고, 해당 사원의 사원번호와 사원명을 출력.
R Programming |
%%R
emp %>% filter(!is.na(comm) & comm >0 ) %>% dplyr::select(empno,ename)
Results |
# A tibble: 3 x 2
empno ename
<dbl> <chr>
1 7499 ALLEN
2 7521 WARD
3 7654 MARTIN
5. R sqldf Package
Emp테이블에서 comm 변수에 값이 존재하는 직원을 선택하고, 해당 사원의 사원번호와 사원명을 출력.
R Programming |
%%R
require(sqldf)
sqldf("select empno, ename from emp where comm is not null and comm>0")
Results |
empno ename
1 7499 ALLEN
2 7521 WARD
3 7654 MARTIN
6. Python pandasql Package
Emp테이블에서 comm 변수에 값이 존재하는 직원을 선택하고, 해당 사원의 사원번호와 사원명을 출력.
Python Programming |
ps.sqldf("select empno, ename from emp where comm is not null and comm>0")
Results |
empno | ename | |
0 | 7499 | ALLEN |
1 | 7521 | WARD |
2 | 7654 | MARTIN |
7. R data.table Package
Emp테이블(DT)에서 comm 변수에 값이 존재하는 직원을 선택하고, 해당 사원의 사원번호와 사원명을 출력.
R Programming |
%%R
DT <- data.table(emp)
dept_DT <- data.table(dept)
DT[ !is.na(comm) & comm >0 , .( empno, ename )]
Results |
empno ename
1: 7499 ALLEN
2: 7521 WARD
3: 7654 MARTIN
8. SAS Proc SQL
SAS Programming |
%%SAS sas
PROC SQL;
CREATE TABLE STATSAS_1 AS
SELECT EMPNO,ENAME
FROM EMP
WHERE COMM NE .
AND COMM > 0;
QUIT;
PROC PRINT;RUN;
Results |
OBS | empno | ename |
1 | 7499 | ALLEN |
2 | 7521 | WARD |
3 | 7654 | MARTIN |
9. SAS Data Step
EMP 데이터 세트에서 커미션(comm)이 0보다 큰 값을 가지는 사원들의 사원 번호와 이름을 선택하여 신규 데이터 세트를 생성한다.
SAS Programming |
%%SAS sas
DATA STATSAS_2;
SET EMP;
KEEP EMPNO ENAME;
WHERE COMM NE .
AND COMM > 0;
RUN;
PROC PRINT;RUN;
Results |
OBS | empno | ename |
1 | 7499 | ALLEN |
2 | 7521 | WARD |
3 | 7654 | MARTIN |
10. Python Dfply Package
filter_by 함수를 사용하여서 comm 변수에 값이 존재하고 해당 값이 0보다 큰 직원들의 정보를 선택 후에 select 함수를 사용하여서 empno와 ename 변수를 출력한다.
Python Programming |
emp >> filter_by(X.comm.notnull() , X.comm > 0) >> select(X.empno, X.ename)
Results |
empno | ename | |
1 | 7499 | ALLEN |
2 | 7521 | WARD |
4 | 7654 | MARTIN |
mask 함수를 사용하여서 comm 변수에 값이 존재하고 해당 값이 0보다 큰 직원들의 정보를 선택 후에 select 함수를 사용하여서 empno와 ename 변수를 출력한다.
Python Programming |
emp >> mask(X.comm.notnull() , X.comm > 0) >> select(X.empno, X.ename)
Results |
empno | ename | |
1 | 7499 | ALLEN |
2 | 7521 | WARD |
4 | 7654 | MARTIN |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트
'통계프로그램 비교 시리즈 > 프로그래밍비교(Oracle,Python,R,SAS)' 카테고리의 다른 글
[데이터 선택 - AND & OR 연산자] 복수의 OR 연산자와 AND 연산자 - 11 (오라클 SQL, R, Python, SAS) (0) | 2021.08.05 |
---|---|
[데이터 선택 - OR 연산자] Null 데이터 선택과 Or 연산자 - 10 (오라클 SQL, R, Python, SAS) (0) | 2021.08.04 |
[관측치 선택] 복수의 조건문을 만족하는 관측치 출력 - 8 (0) | 2021.08.04 |
[관측치 선택] 조건문을 만족하는 관측치 출력 - 7 (0) | 2021.08.04 |
[변수 생성 & 결측치 대체] 결측치 대체 후 신규 변수 생성 - 6 (0) | 2021.08.04 |
댓글