[spotfire] 21. Datable 내변환-calculated column

calculated column은 데이터 처리 방법 중에서 Dataable 내의 변환, 즉 Data Transform 중 하나인데 굉장히 활용도가 높은 기능입니다. 또한 calculated column 기능에 사용되는 설정창은 대부분의 데이터 트랜스폼에도 동일하게 사용하기 때문에 calculated column 기능을 확실하게 숙지하시면 다른 기능에도 잘 활용하실 수 있을 것 같습니다. calculated column 기능을 실행하는 방법은 크게 두 가지가 있습니다.위치 : 데이터 canvas-plus 버튼 – 데이터 transform-calculated newcolumn / Data-addcalculatedcolumn

액세스 위치의 두 어프로치는 이름이 약간 다르지만 Dataable에 column을 추가하는 기능은 동일합니다. 각 방법은 취향에 따라 사용할 수 있지만 필자의 경우 Data-adcaculated column을 사용하고, Data-adcaculated column을 사용하며, Dataable이 여러 개 있어 복잡한 처리가 많이 사용될 때는 Datacanvas를 통해 calculated newcolumn 방법을 사용합니다. 이는 동일한 기능을 하지만 데이터를 처리하는 데 있어 데이터를 활용하는 것이 보다 체계적이고 절차를 구성하는 데 효율적이기 때문입니다. 자세한 내용은 data canvas에 대해 배울 때 설명하겠습니다.

calcuated column의 사용범위 spotfire에서 column은 논리단위입니다. 그래서 column을 기본으로 다른 수식이나 내용을 추가하여 차트를 그릴 수 있습니다. calculated column에서 생성할 수 있는 범위는 데이터 테이블 내의 데이터를 변형된 내용 또는 임의로 지정하는 상수 범위로 제한됩니다. 예를 들어 부동산 가격을 나타내는 데이터 테이블 예에서는 갑작스러운 서울 인구밀도 데이터와 같은 내용을 담을 수 없고 데이터 테이블 간의 변환과 관련된 기능을 사용해야 합니다.

calculated column의 function

Addcalculatedcolumn의 자리 두면 adcalculatedcolumn창의 설명

addcalculatedcolumn에서는 columnname과 함께 properties, function을 넣을 수 있습니다. function의 종류를 보면 어디서 많이 사용된 function과 비슷한 것처럼 보입니다. 평소 MSoffice 많은 문서들을 다루고 계신 분들은 excel에서 사용하던 function과 비슷한 DBMS와 SQL을 많이 다루는 분은 SQLfunction와 거의 똑같다고 생각합니다. 비록 사용법을 잘 몰라도, 오른쪽에 function을 선택하거나 검색하면 설명이나 사용법 등이 자세히 나옵니다. function을 모두 소개하기는 어렵지만 알고 있으면 좋은 fnuction을 좀 소개하겠습니다.

통계 함수:AVG, MED, MAX, MIN.. 변환 함수:Boolean, Date, DateTime, Integer, String…수학 함수:Cos, Sin, Tan, Log, Mod, PI, Round, Power…문자 함수:Split, Substring, Left, Right, Len순위 함수:Rank, DenseRank논리 함수:if, casewhen, IsNull, 날짜 함수:Today, DateDiff, Year, Month, Week키워드:AS, NEST, OVER

이하에서는, 자주 사용하는 함수의 몇가지 예를 소개합니다.

변환 함수 변환 함수는 사용 방법은 그리 어렵지 않습니다. 함수 이름을 바꾸는 형식으로 작성할 뿐입니다만, 날짜로 변환하는 DateTime과 Date를 사용할 때는 어떻게 넣어야 할지를 알아 두셔야 합니다.

날짜 형식으로 변환:DateTime( 연, 월, 일 때 분, 초)/Date( 연, 월, 일)

사용자가 날짜로 변환하는 목적은 날짜 계산과 주 등을 표시하기 때문입니다. 그러므로 이하의 날짜 함수도 기억하고 두면 좋을 것입니다. 반대로 날짜에서 숫자나 문자로 변환하는 함수는 다음과 같습니다.

yyyyy-mm-dd형식의 문자로 출력:string([날짜])yyyyyymmdd형식의 문자로 출력:Substring([일자]), 1,4)&Substring([일자]), 6,2)&Substring([일자], 9,2)yyymmd형식의 숫자 상수로 출력:int(Substring([일자]), 1,2)및 Substring([일자], 9, string), 2)

날짜 함수 날짜의 계산은 다음과 같습니다.

오늘의 날짜: today() 날짜차 계산: DateDiff(“day”, [이전 날짜], [뒤 날짜])입니다.일 계산 : Day OfWeek ([일자]) : 숫자 표기, 0 : 일 / 1: 월 / 2 : 화 / 3 : 수 / 4 : 목 / 5 : 금 / 6 : 토요 주차 계산 : Week ([일자]), 1 주 : 연도 첫 일요일까지 / 2 주 ~ : 월요일 ~ 일요일

OVER 함수의 다른 function은 다른 프로그램에서 비슷한 용법으로 사용하거나 설명이 비교적 이해하기 쉽지만 OVER 함수는 낯설기도 하고 바로 이해하기도 어렵습니다. 하지만 알고 있으면 활용도가 높은 함수이기 때문에 알아두면 많이 사용할 수 있을 것입니다.OVER 함수는 집계 함수라고도 합니다. 일반 function은 같은 row에서 다른 column을 참조하여 동작하는 경우가 많습니다. 그러나 OVER 함수는 전체 Datable 또는 다른 row에서 다른 column을 참조하여 작동합니다. 다음은 OVER 함수의 사용 방법입니다.

집계 함수 ([col_name]) OVER (옵션 [col_name]) AVG ([VALUE]) OVER ([DATE])

over함수는 하나의 row를 참조하는 것이 아니라 전체 Dataable을 참조하여 over 뒤에 나오는 column을 정렬하여 사용할 수 있도록 합니다.

over함수의 옵션은 over 후 column 정렬 및 사용할 때의 방법을 옵션으로 제공합니다. 예를 들어 All previous는 해당 column 정렬 후 해당 내용보다 앞의 내용 값만 사용한다는 뜻입니다. 예를 들면 그 row의 DATE보다 이전 시간대의 DATE 전체를 사용하는 것으로 누적 함수를 주로 만들 때 사용합니다. intersection의 경우 여러 column에 대해 over 함수를 적용하고 싶을 때 사용합니다.

calculated column의 expression function은 다양한 함수를 의미하며 실제 동작은 expression에 표시된 내용으로 column을 생성합니다. 따라서 function을 포함한 모든 수식이나 변수는 expression에 표현할 수 있어야 합니다. 표현 방법은 excel의 수식을 적용하는 것과 같습니다. function을 정해진 문법에 따라 작성하고 필요한 수식과 절차를 적절하게 작성합니다. 이 expression 표현은 calculated column뿐만 아니라 spotfire 내의 다양한 기능에서도 사용할 수 있습니다.

  • expression 작성 참고 [column 이름]으로 column을 표현할 수 있습니다. 이 값은 하나의 row에서 그 column에 대한 값을 나타냅니다. function(함수내용)에서 함수를 적용하는 것이 이 값은 데이터 테이블 전체에서 원하는 값을 나타냅니다.위의 두 가지 사실이 중요한 것은 정확한 계산 결과를 얻기 위해서입니다. 아래 그림은 전체에 대한 비율을 구하는 expression입니다. 각 row의 비율을 구하기 위해 분자에는 column을 사용하여 각 row 값이 사용되고 분모에게는 function을 사용하여 데이터 테이블 전체의 합을 구했습니다.

expression에서 column과 function의 계산 차이

위에서 설명한 calculated column의 범위는 expression이 표현할 수 있는 범위가 되며, 그것은 spotfire에서 제공하는 function과 다항식과 절차 등으로 제한됩니다. 기타 복잡한 알고리즘과 표현 방법은 분석을 통해 보다 확장된 내용을 다룰 수 있습니다.

특정 조건을 충족하는 표현식 작성 over 함수는 특정 column을 대상으로 동일한 조건끼리 모아서 계산했습니다. 표현식과 if함수를 잘 활용하면 over함수와 마찬가지로 특정 column의 특정 조건만 모아서 계산할 수 있습니다. 이 표현식은 자주 쓰이기 때문에 알아두면 좋을 것 같습니다.

avg(if([조건 column] 조건식, [대상 column]))

이 표현식은 조건 column의 조건식을 충족하는 row에서만 대상 column의 값을 계산합니다.

error: Content is protected !!