본문 바로가기

카테고리 없음

[패스트캠퍼스] 데이터시각화 강의 3주차 학습일지(3)

>이번 강의에서는 이해가 더 중요한 것 같아서 이해에 집중을 했다. 

 

<계산된 필드> 

1. 기본계산

- 행수준 계산(e.x.split)/ 집계계산(ex)count)

- 숫자 함수: ABS()-절대값 반환, FLOOR()- 내림, CEILING(),ROUND(),ZN()

- 문자열 함수: SPLIT(),CONTAINS(),LEN(),LEFT(),MID(),RIGHT(),REPLACE()

- 날짜 함수: DATETRUNC(),DATEADD(),DATEDIFF(), DATEPARSE(), DATEPART()-여기에 들어가는 알맞은 형식 태블로 홈페이지에서 확인

- 유형 변환: STR(),DATEPARSE(),FLOAT(),INT()

- 논리 함수: CASE WHEN, IF ELSEIF( IF보다 CASE가 성능향상 둘다 END로 끝내줘야함), OR, AND, ISNULL(),IFNULL() 

- 집계 함수: COUNT(),COUNTD()- 카운트고유(중복값 세지 않고 유니크한 값만 셈),AVG(),MAX(),MIN(),SUM()

 

 1) 계산된 필드 오류 해결 방법

- 집계와 집계되지 않은 것은 혼합 불가> 모든 필드 집계/ 모든 필드 집계 해제

- IF 식에서 집계 및 집계되지 않은 비교/결과 혼합할 수 없음

      > 모든 필드 집계 해제 후 한꺼번에 집계

      > ATTR 활용( 비집계값을 집계로 변경): 하나의 마크에 단일값만 있거나 모든 멤버가 동일한 경우 ( MIN=MAX) 값, 아니면 * 반환

 

2) 차원과 측정값 집계

- 차원(최소값,최대값,카운트, 카운트(고유), 특성(ATTR)을 집계하는 경우 처음에 차원에 체크를 해두고 측정값에 가능

카운트는 중복된 &nbsp;Order ID도 레코드 단위로 세기 때문에 고유한 주문 번호의 갯수가 아닌 레코드 수이다.
2017년 2월 18일에 주문한 것만 카운트 되어 있는 것을 알 수 있음

- 측정값(합계, 평균, 중앙값, 표준편차 ,분산 등)을 집계하는 경우: 더 다양함. 

 

samplestore 데이터는 Order Id> Product Name>레코드의 수가 하나로 카운트된다. 여기서 Sales를 1 카운트 되어있는 열로 끌게되면 측정값들이 생기면서 오른쪽처럼 된다. 평균이어도 합계랑 값이 같은데 그 이유는  차원안에 해당하는 값을 orders의 카운트로 나누기 때문에 같다. 

 

열합계를 추가하게 되면 1840/7나눈 값이 평균인 263인 것을 확인할 수 있다. 

 

열을 보면 190/2의 값인 95가 평균으로  들어간 것을 알 수 있음. 태블로에서는 레코드 수로 카운트 됨. 

2. 테이블 계산: 현재 비주얼리제이션의 수준에서 값 변형,  View에 보이는 내용을 바탕으로 계산,측정값 집계에 자주 사용됨

1) 테이블 계산의 개념

-LOOKUP, RANK,RUNNING, WINDOW

- 계산 방향: 테이블 옆으로, 아래로, 옆에서 아래로, 아래에서 옆으로, 패널 아래로, 패널 옆에서 아래로, 패널 아래에서 옆으로 이렇게 되어있는데 computing using눌러보면 방향감 알 수 있음.

       >특정 차원(specific dimensions)- 체크 된 부분(주소 지정 필드): 계산이 어떻게 수행될지 방향을 정의하는 차원

                                                            - 체크 안된 부분(파티션 지정 필드): 계산 재시작 기준, 계산을 어떻게 그룹 지을것인지 정의 차원

세부정보에 넣은 sales 우클릭>테이블계산추가
변경한 것에 텍스트들어가서 합계차이는 빨간색으로 변경

 

마크박스 안에 있는 sales 우클릭>서식>글자>숫자에서 위와 같이 하면 플러스일 때 + 마이너스일때 -표시 가능

2)퀵테이블 계산

- 퀵테이블 계산 시 주의점: 계산 방식에 대해서는 설정하나 방향에 대해서는 설정하지 않기때문에 테이블 계산 편집에 들어가서 확인해봐야함. 

- 누계, 차이, 비율차이, 구성 비율, 순위, 백분위수, 이동 평균, YTD 총계, 통합 성장률, 전년 대비 성장률, YTD 성장율

 

3) Partition, Running

4)Window, Rank

 

window avg()는 퀵테이블계산의 이동계산과 값이 동일

 

 

5) 활용 사례

- Region 별로 카테고리할 때마다 가장 잘 팔리는 품목이 달라지는 데 View에 따라 다른 최소 최대 카테고리 색 부여. 

- Region을 선택하는 매개변수(Select region) 만들기(매개변수를 만들고 나서는 항상 매개변수를 적용할 필드를 만들어줘야 함)>Avg Sales by Region> 최대 최소에 색을 넣기 위한 MAX/MIN 필드 만들어서 색상에 적용

6) 테이블 계산 시 주의사항

- 테이블 계산은 집계되지 않은 필드로 수행 불가

- 뷰에서 필터링 된 차원은 테이블 계산에서 고려되지 않음(필터 선반이나 데이터 원본 필터)

- 정확한 결과값을 위한 정확한 계산이 되었는지 확인할 것. 

 

 

3. LOD(Level of Detail Expression)

1)개념

- 재구매 여부, 신규 구매 고객 분석, 사용자별 분석, 고객 유지 패턴 분석

2)FIXED

- 현재 View에 보이는 차원과는 관계없이 특정차원을 사용하여 계산

세그먼트 수준에서만 sum 계산
고객이 가장 최근에 구매한 날짜를 fixed로 이용해서 계산. 이 경우 order date 차원을 신경쓰지않고 customer name 차원만 고려, 즉 order date 열 무시하고 고객별로 제일 최근 주문한 날짜
2020/12/30일 기준에서 최근 구매한 날짜로부터 몇일이 차이나는지
구간으로 나누는 그래프를 만든다고 가정, 30일씩 끊는 것 만들기
열선반에 고유 customer name 넣고, 아까 만들 필드 색상에 넣으면 됨
최근 30일 이내에 구매한 고객들만 가지고 집합을 만들어서 스캐터 플랏에 적용할 수도 있음. 

 

 - 예제 1)고객별 특정 카테고리 상품의 최근 구매 날짜 구하기: 최근 구매 날짜 중에서 Tech 카테고리 구매 여부 있는 고객의 데이터만 보는게 아니라 Tech 카테고리 안에서 최근 구매 날짜를 보고 싶을 때(tech 제품을 구매한 최근 날짜) 문제는 Fixed는 차원 필터보다 상위에 있어서 차원 필터를 컨텍스트로 바꾼다.

컨텍스트 전과 후 차이 살펴보기 최근 구매한 날짜를 기준으로 tech 구매한 사람들을 보는 것이 아니라, tech 구매한 사람들을 기준으로 최근 구매 날짜 보는 것 

- 예제 2) 각 서브카테고리가 매출 합계에서 차지하는 비율 고정: 서브 카테고리가 매출 합계에서 차지하는 비율 볼 때, 특정 서브카테고리를 제외하는 필터링 걸어도 구성 비율이 변하지 않기를 원하는 경우, 문제는 차원 필터는 계산보다 상위에 있어서 차원을 제외하면 그 안에서 100%로 재계산> 테이블 계산을  fixed로 바꾸기

3)INCLUDE

- 현재  view에서 특정 차원을 추가하여 계산

일반 평균은 sales를 레코드 수를 나눠서 생기는 것이지만 include평균은 sales를 subcategory(열 선반에는 카테고리만 있지만)로 나눠서 낸 값이라고 생각하면 됨. 오른쪽 사진과 같은 개념으로 생각하면 된다. 

4)EXCLUDE

- 현재 view에서 특정 차원을 제외하여 계산

카데고리 차원을 제외한 sum(sales)를 계산, {FIXED[region]:SUM([sales])}과 동일

5)LOD Syntax

- 차원이 선언되지 않은 경우: 전체 테이블의 sales 합계 반환

{FIXED:SUM([sales])}={SUM[sales]} 한 값을 가진다.

- 여러개 차원을 선언하는 경우, 그냥  LOD 안쓴거랑 똑같음

LOD 계산 시 참고사항

-FIXED:  차원, 측정값/ INCLUDE, EXCLUDE: 측정값

-차원을 선언할 떄 형태 변경 가능 ex> {FIXED DATETRUNC(' year',[Order Date]):SUM([Sales])}

- LOD 식 안의 LOD 식 사용가능(Nested LOD)

 

 

#국비지원교육 #내일배움카드로 듣고 있는 데이터 시각화 강의