본문 바로가기
통계프로그램 비교 시리즈/오라클함수 비교(R & Python)

INITCAP 오라클 함수 [Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table, DuckDB]

by 기서무나구물 2021. 11. 25.

포스팅 목차

    * 파이썬 & R 패키지 호출 및 예제 데이터 생성 링크


    [ INITCAP Oracle Function ]

     


    INITCAP함수는 입력 문자열 중에서 각 단어의 첫 글자를 대문자로 나머지는 소문자로 변환하여 반환한다. 공백 또는 영문, 숫자 이외의 문자는 단어를 구분하는 구분자이다.

     

     


    1. Oracle(오라클)

     

    INITCAP 함수

    Initcap 함수를 사용하여서 사용자가 지정한 문자열 중에서 각 단어의 첫 글자를 대문자로 변경하고, 나머지 문자는 소문자로 변환하여 반환한다.

     

    Oracle Programming
    SELECT INITCAP('the soap') "Capitals" 
    FROM   DUAL;

     

    Results
    Capitals
    ---------
    The Soap

     


    2. Python Pandas(파이썬)

     

    capitalize()

    Python Programming
    'the soap'.capitalize()

     

    Results
    'The soap'

     


    title()

    Python Programming
    'the soap'.title()

     

    Results
    'The Soap'

     


    str.capitalize()

    Python Programming
    emp['ename'].str.capitalize()

     

    Results
    0      Smith
    1      Allen
    2       Ward
    3      Jones
    4     Martin
    5      Blake
    6      Clark
    7      Scott
    8       King
    9     Turner
    10     Adams
    11     James
    12      Ford
    13    Miller
    Name: ename, dtype: object

     

     

     


    3. R Programming (R Package)

     

    Hmisc::capitalize()

    R Programming
    %%R
    
    library(Hmisc)
    Hmisc::capitalize('the soap')

     

    Results
    [1] "The soap"

     


    stringr::str_to_title()

    R Programming
    %%R
    
    stringr::str_to_title('the soap')

     

    Results
    [1] "The Soap"

     


    stringr::str_to_title()

    R Programming
    %%R
    
    stringr::str_to_title(emp$ename)

     

    Results
     [1] "Smith"  "Allen"  "Ward"   "Jones"  "Martin" "Blake"  "Clark"  "Scott" 
     [9] "King"   "Turner" "Adams"  "James"  "Ford"   "Miller"

     

     

     


    4. R Dplyr Package

     

    stringr::str_to_title()

    R Programming
    %%R
    
    emp %>%
      dplyr::mutate(initcap = stringr::str_to_title(ename)) %>%
      head(7)

     

    Results
    # A tibble: 7 x 9
      empno ename  job        mgr hiredate     sal  comm deptno initcap
      <dbl> <chr>  <chr>    <dbl> <date>     <dbl> <dbl>  <dbl> <chr>  
    1  7369 SMITH  CLERK     7902 1980-12-17   800    NA     20 Smith  
    2  7499 ALLEN  SALESMAN  7698 1981-02-20  1600   300     30 Allen  
    3  7521 WARD   SALESMAN  7698 1981-02-22  1250   500     30 Ward   
    4  7566 JONES  MANAGER   7839 1981-04-02  2975    NA     20 Jones  
    5  7654 MARTIN SALESMAN  7698 1981-09-28  1250  1400     30 Martin 
    6  7698 BLAKE  MANAGER   7839 1981-03-01  2850    NA     30 Blake  
    7  7782 CLARK  MANAGER   7839 1981-01-09  2450    NA     10 Clark  

     

     

     


    5. R sqldf Package

     

    proper()

    Propef 함수를 사용하여서 사용자가 지정한 문자열에 대하여 각 단어의 첫 글자를 대문자로 변경하고, 나머지 문자는 소문자로 변환하여 반환한다.

     

    R Programming
    %%R
    
    sqldf(" SELECT proper('the soap') Capitals ")

     

    Results
      Capitals
    1 The Soap

     

     

     


    6. Python pandasql Package

     

    proper()

    Propef 함수를 사용하여서 사용자가 지정한 문자열에 대하여 각 단어의 첫 글자를 대문자로 변경하고, 나머지 문자는 소문자로 변환하여 반환한다.

     

    Python Programming
    ps.sqldf(" SELECT proper('the soap') ")

     

     

     


    7. R data.table Package

     

    stringr::str_to_title()

    R Programming
    %%R
    
    DT          <- data.table(emp)
    dept_DT     <- data.table(dept)
    
    DT[,initcap := stringr::str_to_title(ename)][1:7, ]

     

    Results
       empno  ename      job  mgr   hiredate  sal comm deptno initcap
    1:  7369  SMITH    CLERK 7902 1980-12-17  800   NA     20   Smith
    2:  7499  ALLEN SALESMAN 7698 1981-02-20 1600  300     30   Allen
    3:  7521   WARD SALESMAN 7698 1981-02-22 1250  500     30    Ward
    4:  7566  JONES  MANAGER 7839 1981-04-02 2975   NA     20   Jones
    5:  7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400     30  Martin
    6:  7698  BLAKE  MANAGER 7839 1981-03-01 2850   NA     30   Blake
    7:  7782  CLARK  MANAGER 7839 1981-01-09 2450   NA     10   Clark

     


    8. Python DuckDB의 SQL

     

    Python Programming
    %%sql
      SELECT upper(substr('the soap',1,1))||lower(substr('the soap',2)) "Capitals"

     

    Python Programming
    print( duckdb.sql(" SELECT upper(substr('the soap',1,1))||lower(substr('the soap',2)) as Capitals ").df() )

     

     

    Results
       Capitals
    0  The soap

     


    book store in deajeon (https://unsplash.com/photos/cJKfMvJGHD0)

      --------------------------------------------  

     

    [Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table] 오라클 함수와 R & Python 비교 사전 목록 링크

     

    오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

     

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

    댓글