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

ATAN2 Oracle Function [Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table, DuckDB]

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

포스팅 목차

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


    [ ATAN2 함수 ]

     


    ATAN2(n,m)은 atan2(n/m)과 같으며, n/m의 역탄젠트(arc tangent)값을 반환한다.

    인수 n은 범위가 제한이 없고, n과 m의 부호에 의존하는 -pi~pi(라디안)의 범위 값을 반환한다. ATAN2(n,m)은 ATAN(n/m)과 같은 표현이다.

     


    1. Oracle(오라클)

     

    Oracle Programming
    SELECT ATAN2(.3, .2) "Arc_Tangent2"
    FROM   DUAL;

     

    Results
                  Arc_Tangent2
    .9827937232473290679857106110146660144997

     


    2. Python Pandas(파이썬)

     

    Python Programming
    math.atan2(.3, 0.2)

     

    Results
    0.982793723247329

     


    수치형 목록 예제

    Python Programming
    emp.sal.apply(lambda x : math.atan2(x, 0.2) ).head()

     

    Results
    0    1.570546
    1    1.570671
    2    1.570636
    3    1.570729
    4    1.570636
    Name: sal, dtype: float64

     

     


    3. R Programming (R Package)

     

    R Programming
    %%R
    
    atan2(.3, 0.2)

     

    Results
    [1] 0.9827937

     


    수치형 목록 예제

    R Programming
    %%R
    
    atan2(emp$sal, 0.2)

     

    Results
     [1] 1.570546 1.570671 1.570636 1.570729 1.570636 1.570726 1.570715 1.570730
     [9] 1.570756 1.570663 1.570615 1.570586 1.570730 1.570642

     

     


    4. R Dplyr Package

     

    R Programming
    %%R
    
    emp %>%
      dplyr::mutate(sal_atan2 = atan2(sal , 0.2)) %>%
      head()

     

    Results
    # A tibble: 6 x 9
      empno ename  job        mgr hiredate     sal  comm deptno sal_atan2
                           
    1  7369 SMITH  CLERK     7902 1980-12-17   800    NA     20      1.57
    2  7499 ALLEN  SALESMAN  7698 1981-02-20  1600   300     30      1.57
    3  7521 WARD   SALESMAN  7698 1981-02-22  1250   500     30      1.57
    4  7566 JONES  MANAGER   7839 1981-04-02  2975    NA     20      1.57
    5  7654 MARTIN SALESMAN  7698 1981-09-28  1250  1400     30      1.57
    6  7698 BLAKE  MANAGER   7839 1981-03-01  2850    NA     30      1.57

     

     


    5. R sqldf Package

    R Programming
    %%R
    
    sqldf("select atan2(.3, 0.2) Arc_Tangent ")

     

    Results
      Arc_Tangent
    1   0.9827937

     


    수치형 목록 예제

    R Programming
    %%R
    
    sqldf("select atan2(sal, 0.2) Arc_Tangent from emp")[1:5, ]

     

    Results
    [1] 1.570546 1.570671 1.570636 1.570729 1.570636

     


    6. Python pandasql Package

     

    Python Programming
    ps.sqldf(" select atan2(.3, 0.2) ")

     

    Python Programming
    import pandasql as ps
    var = math.atan2(.3, 0.2)
    
    query = "SELECT {} ".format(var)
    ps.sqldf(query, globals())

     

    Results
    	0.982793723247329
    0	0.982794

     

     


    7. R data.table Package

     

    R Programming
    %%R
    
    DT <- data.table(emp)
    
    DT[, sal_atan2 := atan2(sal , 0.2)][1:5,]

     

    Results
       empno  ename      job  mgr   hiredate  sal comm deptno sal_atan2
    1:  7369  SMITH    CLERK 7902 1980-12-17  800   NA     20  1.570546
    2:  7499  ALLEN SALESMAN 7698 1981-02-20 1600  300     30  1.570671
    3:  7521   WARD SALESMAN 7698 1981-02-22 1250  500     30  1.570636
    4:  7566  JONES  MANAGER 7839 1981-04-02 2975   NA     20  1.570729
    5:  7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400     30  1.570636

     


    8. Python DuckDB의 SQL

     

    Python Programming
    %%sql
      SELECT ATAN2(.3, .2) "Arc_Tangent2"

     

    Python Programming
    duckdb.sql(" SELECT ATAN2(.3, .2) Arc_Tangent2 ").df()

     

    Results
       Arc_Tangent2
    0      0.982794

     


    https://unsplash.com/photos/KpIgjFZmp0E

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

     

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

    댓글