포스팅 목차
66. Find out the length of your name using appropriate function.
* 적절한 함수를 사용하여서 사원 이름의 길이를 출력하라.
- 파이썬 & R 패키지 호출 및 예제 데이터 생성 링크
- [문자 함수] 문자 길이 측정
|
1. Oracle(오라클)
- Length 함수를 사용하여서 사원 이름의 길이를 계산한다.
| Oracle Programming |
select ename,
length('ename') ename_length
from emp;
2. Python Pandas(파이썬)
- Len() 함수를 사용하여서 사원 이름의 길이를 계산한다.
| Python Programming |
import copy
withmooc = copy.copy(emp)
withmooc
withmooc['ename_length'] = withmooc['ename'].str.len()
display(withmooc.head())
| Results |
| empno | ename | job | mgr | hiredate | sal | comm | deptno | ename_length | |
| 0 | 7369 | SMITH | CLERK | 7902.0 | 1980/12/17 | 800 | NaN | 20 | 5 |
| 1 | 7499 | ALLEN | SALESMAN | 7698.0 | 1981/02/20 | 1600 | 300.0 | 30 | 5 |
| 2 | 7521 | WARD | SALESMAN | 7698.0 | 1981/02/22 | 1250 | 500.0 | 30 | 4 |
| 3 | 7566 | JONES | MANAGER | 7839.0 | 1981/04/02 | 2975 | NaN | 20 | 5 |
| 4 | 7654 | MARTIN | SALESMAN | 7698.0 | 1981/09/28 | 1250 | 1400.0 | 30 | 6 |
3. R Programming (R Package)
- stringr::str_length 함수를 사용하여서 사원 이름의 길이를 계산한다.
| R Programming |
%%R
withmooc <- emp
withmooc['ename_len'] = lapply(withmooc['ename'],stringr::str_length )
head(withmooc)
| Results |
# A tibble: 6 x 9
empno ename job mgr hiredate sal comm deptno ename_len
<dbl> <chr> <chr> <dbl> <date> <dbl> <dbl> <dbl> <int>
1 7369 SMITH CLERK 7902 1980-12-17 800 NA 20 5
2 7499 ALLEN SALESMAN 7698 1981-02-20 1600 300 30 5
3 7521 WARD SALESMAN 7698 1981-02-22 1250 500 30 4
4 7566 JONES MANAGER 7839 1981-04-02 2975 NA 20 5
5 7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400 30 6
6 7698 BLAKE MANAGER 7839 1981-03-01 2850 NA 30 5
4. R Dplyr Package
stringr::str_length 함수를 사용하여서 직원 이름의 길이를 계산한다. mutate() 함수를 사용하여서 신규 변수를 생성한다.
| R Programming |
%%R
emp %>%
dplyr::mutate(ename_len = stringr::str_length (ename)) %>%
head()
| Results |
# A tibble: 6 x 9
empno ename job mgr hiredate sal comm deptno ename_len
<dbl> <chr> <chr> <dbl> <date> <dbl> <dbl> <dbl> <int>
1 7369 SMITH CLERK 7902 1980-12-17 800 NA 20 5
2 7499 ALLEN SALESMAN 7698 1981-02-20 1600 300 30 5
3 7521 WARD SALESMAN 7698 1981-02-22 1250 500 30 4
4 7566 JONES MANAGER 7839 1981-04-02 2975 NA 20 5
5 7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400 30 6
6 7698 BLAKE MANAGER 7839 1981-03-01 2850 NA 30 5
5. R sqldf Package
- Length 함수를 사용하여서 직원 이름의 길이를 계산한다
| R Programming |
%%R
sqldf("select ename, length(ename) ename_len from emp;") %>% head()
| Results |
ename ename_len
1 SMITH 5
2 ALLEN 5
3 WARD 4
4 JONES 5
5 MARTIN 6
6 BLAKE 5
6. Python pandasql Package
- Length 함수를 사용하여서 사원 이름의 길이를 계산한다.
| Python Programming |
ps.sqldf("select ename, length(ename) ename_len from emp").head()
| Results |
| ename | ename_len | |
| 0 | SMITH | 5 |
| 1 | ALLEN | 5 |
| 2 | WARD | 4 |
| 3 | JONES | 5 |
| 4 | MARTIN | 6 |
7. R data.table Package
- stringr::str_length 함수를 사용하여서 직원 이름의 길이를 계산한다.
| R Programming |
%%R
DT <- data.table(emp)
DT[,ename_len := stringr::str_length(ename)][1:5, ]
| Results |
empno ename job mgr hiredate sal comm deptno ename_len
1: 7369 SMITH CLERK 7902 1980-12-17 800 NA 20 5
2: 7499 ALLEN SALESMAN 7698 1981-02-20 1600 300 30 5
3: 7521 WARD SALESMAN 7698 1981-02-22 1250 500 30 4
4: 7566 JONES MANAGER 7839 1981-04-02 2975 NA 20 5
5: 7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400 30 6
| R Programming |
ts=robjects.r('DT')
ts
| Results |
R/rpy2 DataFrame (14 x 9)

8. SAS Proc SQL
- Length 함수를 사용하여서 사원 이름의 길이를 계산한다.
| SAS Programming |
%%SAS sas
PROC SQL;
CREATE TABLE STATSAS_1 AS
select ename,
length(ename) as ename_len
from emp;
QUIT;
PROC PRINT data=STATSAS_1(obs=3);RUN;
| Results |
| OBS | ename | ename_len |
| 1 | SMITH | 5 |
| 2 | ALLEN | 5 |
| 3 | WARD | 4 |
9. SAS Data Step
- Length 함수를 사용하여서 사원 이름의 길이를 계산한다.
| SAS Programming |
%%SAS sas
DATA STATSAS_2;
SET emp;
ename_len = length(ename);
keep ename ename_len;
RUN;
PROC PRINT data=STATSAS_2(obs=3);RUN;
| Results |
| OBS | ename | ename_len |
| 1 | SMITH | 5 |
| 2 | ALLEN | 5 |
| 3 | WARD | 4 |
10. Python Dfply Package
- Len() 함수를 사용하여서 사원 이름의 길이를 계산한다.
| Python Programming |
emp >> mutate(ename_len = X.ename.str.len()) >> head(5)
| Results |
| empno | ename | job | mgr | hiredate | sal | comm | deptno | ename_len | |
| 0 | 7369 | SMITH | CLERK | 7902.0 | 1980/12/17 | 800 | NaN | 20 | 5 |
| 1 | 7499 | ALLEN | SALESMAN | 7698.0 | 1981/02/20 | 1600 | 300.0 | 30 | 5 |
| 2 | 7521 | WARD | SALESMAN | 7698.0 | 1981/02/22 | 1250 | 500.0 | 30 | 4 |
| 3 | 7566 | JONES | MANAGER | 7839.0 | 1981/04/02 | 2975 | NaN | 20 | 5 |
| 4 | 7654 | MARTIN | SALESMAN | 7698.0 | 1981/09/28 | 1250 | 1400.0 | 30 | 6 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트
반응형
'통계프로그램 비교 시리즈 > 프로그래밍비교(Oracle,Python,R,SAS)' 카테고리의 다른 글
| [데이터 전처리- 문자함수 예제] 문자열 결합(||) & 문자열 연결 - 68 (0) | 2021.08.27 |
|---|---|
| [데이터 전처리- 문자함수 예제] 문자 길이 합계 계산 - 67 (0) | 2021.08.27 |
| [데이터 전처리- 문자함수 예제] 문자 proper case 문자로 변환 방식 비교 - 65 (0) | 2021.08.24 |
| [데이터 전처리- 문자함수 예제] 문자 소문자 변환 방식 비교 - 64 (0) | 2021.08.24 |
| [데이터 전처리- 문자함수 예제] 문자 대문자 변환 - 63 (0) | 2021.08.24 |

댓글