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

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

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

포스팅 목차

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


    [ CORR / CORR_* Oracle Function ]

     


    CORR함수는 수치 쌍에 대한 상관 계수를 반환한다. 집계 함수 또는 분석 함수로 이용할 수 있다.

     

     


    1. Oracle(오라클)

     

    Oracle Programming
    SELECT CORR(DEPTNO, SAL) 
    FROM   EMP;

     

    Results
              CORR(DEPTNO,SAL)
    --------------------------------------------
    -.451881358028769611181429063555826733966

     


    2. Python Pandas(파이썬)

     

    Python Programming
    emp[['deptno','sal']].corr(method ='pearson')  # method ='kendall'

     

    Results
    	deptno		sal
    deptno	1.000000	-0.451881
    sal	-0.451881	1.000000

     



    3. R Programming (R Package)

     

    R Programming
    %%R
    
    stats::cor(emp$deptno, emp$sal, method = c("pearson"))

     

    Results
    [1] -0.4518814

     

     

     


    4. R Dplyr Package

     

    R Programming
    %%R
    
    library(corrr)
    
    emp %>%
      dplyr::select(deptno,sal) %>% correlate()

     

    Results
    R[write to console]: 
    Correlation method: 'pearson'
    Missing treated using: 'pairwise.complete.obs'
    
    
    
    
    # A tibble: 2 x 3
      rowname deptno    sal
      <chr>    <dbl>  <dbl>
    1 deptno  NA     -0.452
    2 sal     -0.452 NA    

     

     

     


    5. R sqldf Package

     

    R Programming
    %%R
    
    sqldf(" SELECT corr(deptno, sal)
            FROM emp  ")

     

     

     


    6. Python pandasql Package

     

     


    7. R data.table Package

     

    R Programming
    %%R
    
    DT      <- data.table(emp)
    dept_DT <- data.table(dept)
    
    DT[, .(sal_cor =  cor(deptno,sal))]

     

    Results
          sal_cor
    1: -0.4518814

     

     


    8. Python DuckDB의 SQL

     

    Python Programming
    %%sql
      SELECT CORR(deptno, SAL) as CORR_1
      FROM   emp

     

    Python Programming
    duckdb.sql(" SELECT CORR(deptno, SAL) as CORR_1          \
                 FROM   emp ").df()

     

     

    Results
         CORR_1
    0 -0.451881

     

     


    Transreal Fiction, Edinburgh, United Kingdom (https://unsplash.com/photos/O0czDp42LDA)

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

    [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 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 링크
    반응형

    댓글