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

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

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

포스팅 목차

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


    ASIN 함수

     


    ASIN(n)은 n의 역사인(arc sine) 값을 반환한다.

    인수 n은 -1 ~ 1의 범위이고, 반환값은 라디안으로 표현되는 -pi/2~pi/2의 범위 값이다.

     

     


    1. Oracle(오라클)

     

    Oracle Programming
    SELECT ASIN(.3) "Arc_Sine"
    FROM   DUAL;

     

    Results
                  Arc_Sine
    .3046926540153975079720029612275291599

     


    2. Python Pandas(파이썬)

     

    Python Programming
    import math
    
    math.asin(.3)

     

    Results
    0.3046926540153975

     

    • 수치형 목록 예제
    Python Programming
    emp.sal.apply(lambda x: math.asin(x/10000)).head()

     

    Results
    0    0.080086
    1    0.160691
    2    0.125328
    3    0.302073
    4    0.125328
    Name: sal, dtype: float64

     


    3. R Programming (R Package)

     

    R Programming
    %%R
    
    asin(.3)

     

    Results
    [1] 0.3046927

     

    • 수치형 목록 예제
    R Programming
    %%R
    
    asin(emp$sal/10000)

     

    Results
     [1] 0.08008558 0.16069065 0.12532783 0.30207302 0.12532783 0.28900643
     [7] 0.24751969 0.30469265 0.52359878 0.15056827 0.11022305 0.09514348
    [13] 0.30469265 0.13036898

     


    4. R Dplyr Package

     

    R Programming
    %%R
    
    emp %>%
      dplyr::mutate(sal_asin = asin(sal / 10000)) %>%
      head()

     

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

     


    5. R sqldf Package

    R Programming
    %%R
    
    sqldf("select asin(.3) Arc_Sine ")

     

    Results
       Arc_Sine
    1 0.3046927

     

    • 수치형 목록 예제
    R Programming
    %%R
    
    sqldf("select asin(sal / 10000) Arc_Sine from emp ")[1:5,]

     

    Results
    [1] 0.08008558 0.16069065 0.12532783 0.30207302 0.12532783

     


    6. Python pandasql Package

    Python Programming
    ps.sqldf(" select sin(.3) ")

     

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

     

    Results
    	0.3046926540153975
    0	0.304693

     

     


    7. R data.table Package

     

    R Programming
    %%R
    
    DT <- data.table(emp)
    
    DT[, sal_asin := asin(sal / 10000)][1:5,]

     

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

     


    8. Python Duckdb의 SQL

     

    Python Programming
    %%sql
      SELECT ASIN(.3) "Arc_Sine"

     

    Python Programming
    print(duckdb.sql(" SELECT ASIN(.3) Arc_Sine ").df() )

     

    Results
       Arc_Sine
    0  0.304693

     


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

     

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

    댓글