Week 3. 데이터 시각화 실습

조이·2022년 7월 4일
0

Vizable

목록 보기
3/5

3-1. 계산된 필드

계산된 필드(calculated field)로 할 수 있는것은?
1. 데이터 소스에서 새로운 컬럼 생성
2. 새롭게 추가된 컬럼을 저장
3. 새롭게 추가된 컬럼을 분석에 사용

계산된 필드를 사용하는 이유?
⇒ 데이터 분류, 데이터 유형 변경, 데이터 집계, 데이터 필터링이 가능하기 때문임.

계산된 필드 생성 방법:

  • 에디터(editor, 계산식 적는 공간)에 차원/수치값 필드 끌어 놓기
  • 에디터에서 패널로 끌어 놓기
  • 함수 참조 더블 클릭으로 사용하고 싶은 함수 자동완성

태블로 계산 유형

  1. 기본 계산
    : 데이터 원본에 대한 행 수준 계산 또는 집계 계산
    (숫자, 문자열, 날짜)
  2. 테이블 계산
    : 현재 비주얼리제이션에 표시된 항목 기반 계산
    (LOOKUP)
  3. LOD (level of operation) 계산
    : 계산할 수준을 세부적으로 제어 가능
    (FIXED, INCLUDE, EXCLUDE)

3-2. 기본 계산

: 데이터 원본에 대한 행 수준 계산 또는 집계 계산

기본 계산 방식

  • 행 수준 계산: SPLIT([Author], ‘.’ , 3) ⇒ 구둣점을 기준으로 SPLIT한 다음에 3번째 문자열만 가져오도록 함
  • 집계 계산: COUNT([Series]) ⇒ Series 필드에서 각각의 값을 COUNT하도록 함

기본 계산 함수 종류

숫자 함수
: 필드의 데이터 값에 대한 계산 수행 가능

  • 숫자 값을 포함하는 필드에서만 사용 가능
  • ABS() → 절댓값 반환, CELING(), FLOOR() → 작거나 같은 값에 근접한 값으로 반올림, ROUND(), ZN()

문자열 함수
: 문자열 데이터 (텍스트) 조작 가능

  • 문자열 분할/합쳐서 새로운 필드에 저장 가능
  • SPLIT(), CONTAINS(), LEN(), LEFT(), MID(), RIGHT(), REPLACE()
    예) REPLACE([Customer name], “ “, “”) ⇒ Customer name 필드에서 공백을 없애줌

날짜 함수
: 데이터 원본의 날짜 조작 가능

  • 기존 값에서 새로운 날짜 값을 만들 수 있음
  • DATETRUNC(), DATEADD(), DATEDIFF(), DATEPARSE(), DATEPART() → 주어진 날짜에서 특정 부분 정수로 반환
    예) DATEADD(’month’, 3, [Order date]) ⇒ Order date 필드에서 3개월 뒤 날짜로 모두 변환
    예) DATEPART(’month’, [Order date]) ⇒ Order date 필드에서 월 부분 정수로 반환
    예) DATETRUNC(’quarter’, [Order date]) ⇒ Order date 필드에서 분기별 시작일 반환
    예) DATEDIFF(’day’, [Order date], [Ship date]) ⇒ Order date부터 Ship date까지 걸린 일수

유형 변환
: 필드를 한 데이터 유형에서 다른 데이터 유형으로 변환 가능

  • 숫자를 문자열 값으로 변환해 집계하지 않게 할 수 있음
    예) STR() → 주어진 필드 문자형으로 변환, DATEPARSE(), FLOAT(), INT()

논리 함수
: 특정 조건이 참인지 거짓인지 여부를 결정 가능

  • 특정 임계값 위 또는 아래인지 판단 가능
  • CASE WHEN, IF ELSEIF, OR, AND, ISNULL(), IFNULL()
    예) IF ELSEIF문 활용
IF [Profit] > 0 then "profitable"
ELSEIF [Profit] = 0 then "breakeven"
ELSE "loss"
END

예) CASE문 활용

CASE [Region]
WHEN 'West' then 1
WHEN 'East' then 2
WHEN 'South' then 3
ELSE 4
END

집계 함수
: 데이터를 요약하거나 세부 수준 변경 가능

  • 특정 연도의 주문 수를 요약해 비주얼리제이션에 표시 가능
  • COUNT(), COUNTD() → 중복없이 순수하게 집계, AVG(), MAX(), MIN(), SUM()

3-3. 태블로 집계 방식

1. Row-level calculation

: 자동으로 합계로 집계
예) [Profit] / [Sales]

2. Aggregate calculation

: 이미 집계되어 집계라고 표시되고 더 이상 집계되지 않음
예) SUM([Profit]) / SUM([Sales])

2개의 집계 방식의 주요 차이점 ⇒ 집계되었느냐 아닌가에 대한 차이가 존재한다.

계산된 필드 오류 해결방안

집계와 집계되지 않은 것은 혼합 불가
예) SUM([Profit])/Sales
⇒ 모든 필드를 집계하거나, 모드 필드에 대한 집계 해제함

IF 식에서 집계 및 집계되지 않은 비교 또는 결과를 혼합할 수 없음
예)

IF [Region] = “West” THEN SUM([Sales]) END

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

SUM(IF [Region] = “West” THEN [Sales] END)

ATTR 활용 (데이터는 변형하지 않고 비집계 값을 집계로만 변경해줌)

ATTR 함수

하나의 마크에 단일 값만 있거나 모든 멤버가 동일한 경우 (MIN=MAX) 값 반환, 아니면(2개 이상의 값이 있다면) * 반환해주는 함수

예)

IF ATTR([Order date] = 2017-02-18 THEN COUNTD([Customer name]) END

예)

IF ATTR([Category]) = "Furniture"
THEN SUM([Sales])
END

→ Category 중에서 Furniture에 해당하는 값만 Sum([Sales])를 표시해주고, 아닌 경우에는 무시

1. 차원 집계

  • 최소값
  • 최대값
  • 카운트 (COUNT)
  • 카운트 고유 (COUNTD)
  • 특성 (ATTR)

2. 측정값 집계

  • 합계 (SUM)
  • 평균 (AVG)
  • 중앙값 (MEDIAN)
  • 표준편차
  • 분산
  • 백분위수 (PERCENTILE) → 5~95까지 선택가능

3-4. 테이블 계산

: 현재 비주얼리제이션에 표시된 항목 기반 계산

  • 현재 비주얼리제이션의 수준에서 값이 변형됨
  • 데이터 원본이 아닌, 현재 보이는 View에서의 내용을 바탕으로 계산되며 (현재 워크시트에 있는 행, 열, 차원 등의 값에 의해서 워크시트에 나타나는 가상 테이블을 바탕으로 계산이 이루어짐), 측정값 집계에 자주 사용됨
  • 모든 테이블 계산 함수 식 안에는 집계된 값만 입력할 수 있음 ! 썡 필드값만 넣을 수 없음 !
  • LOOKUP, RANK, RUNNING, WINDOW

테이블 계산 방식

  1. 테이블 계산을 수행하고자 하는 필드를 세부정보 마크에 끌어 놓기
  2. 왼쪽 클릭 → ‘테이블 계산 편집’ 클릭
  3. 해당 필드에 대해서 ~ 기준으로 테이블 계산 수행
    • 테이블(옆으로)
    • 테이블(아래로)
    • 테이블(옆에서 아래로)
    • 테이블(아래에서 옆으로)
    • 패널(아래로)
    • 패널(옆에서 아래로)
    • 패널(아래에서 옆으로)
    • 특정 차원
      1. 체크 : 주소 지정 필드
        → 계산이 어떻게 수행될 지 방향을 정의하는 차원 (계산 범위)
      2. 체크 X : 파티션 지정 필드
        → 계산을 어떻게 그룹 지을 것인지 정의하는 차원 (계산 재시작 기준)

주소 지정 ⇒ 테이블을 계산하고자 하는 구간에 따라서 수행 방식 선택 !

주식이나 흐름에 따른 차이값을 보여주고자 하는 경우에는 +, - 단위를 붙이고 싶은 경우가 있을 것임 !
⇒ 차이가 양수면 +(숫자), 음수면 -(숫자) 형식으로
→ 서식 - 숫자 - 사용자 지정 - [+0, -0] 입력하기

퀵 테이블 계산 (Quick table)

: 가장 자주 쓰이는 계산 유형을 몇 번의 클릭만으로 가능하도록 한 것
예) 누계, 차이, 비율 차이, 구성 비율 등

  • 세모 모양 → 테이블 계산이 적용되었다는 의미

총계를 보고 싶다면?
⇒ 탭에서 ‘분석' 클릭 → 총계 → 행 총합계 표시/열 총합계 표시 등 원하는 표시 방법 선택

1) PARTITION 함수

: 현재 partition 내에서 행의 인덱스 값을 활용하는 함수

  • INDEX()
    ⇒ 현재 행의 인덱스 값 반환
  • FIRST()
    ⇒ 현재 행으로부터 첫번째 행까지 남은 행 개수 반환
  • LAST()
    ⇒ 현재 행으로부터 마지막 행까지 남은 행 개수 반환
  • LOOKUP (집계[필드], 타겟 위치)
    ⇒ 현재 행으로부터 타겟 위치만큼 떨어져있는 집계된 필드 값 반환
    - 예) LOOKUP(SUM[Sales], -1) → 이전 행의 값 가져오기
  • PREVIOUS_VALUE(0)
    ⇒ 이전 행의 값 반환, 현재 행이 첫번째 행인 경우 0 반환
    - 예) SUM[Sales] + PREVIOUS_VALUE(0) → 누적 합계 가져오기
    ⇒ RUNNINGSUM (누계)와 동일한 개념

2) RUNNING 함수

: Parition의 첫번째 행부터 현재까지의 누계 합 계산하는 함수 (누적 기반의 계산)

  • RUNNING_SUM(집계[필드])
    ⇒ 파티션의 첫번째 행부터 현재 행까지의 누적 합계
  • RUNNING_AVG(집계[필드])
    ⇒ 파티션의 첫번째 행부터 현재 행까지의 누적 평균
    예) 3번째 행이면 1~3의 평균, 4번째 행이면 1~4의 평균
  • RUNNING_MAX(집계[필드])
    ⇒ 여태까지 나왔던 값 중 최댓값
    예) 5개 행 중에 3번째 행이 가장 크면 3,4,5번째 행은 모두 3번째 행 값으로
  • RUNNING_MIN(집계[필드])
    ⇒ 여태까지 나왔던 값 중 최솟값
    예) 5개 행 중에 3번째 행이 가장 작으면 3,4,5번째 행은 모두 3번째 행 값으로

3) WINDOW 함수

: 시작 위치와 끝 위치를 지정해줄 수 있는 RUNNING 함수의 변형 버전 함수

  • WINDOW_SUM(집계[필드], 시작 위치, 끝 위치)
    ⇒ 지정한 윈도우 범위 내 집계된 필드의 합계 계산
    - 예) WINDOW_SUM(SUM[Sales], -2, 0) → 2개 이전 행으로부터 현재 행까지의 행별 합계 계산
  • WINDOW_AVG(집계[필드], 시작 위치, 끝 위치)
    ⇒ 지정한 윈도우 범위 내 집계된 필드의 평균 계산
  • WINDOW_MAX(집계[필드], 시작 위치, 끝 위치)
    ⇒ 지정한 윈도우 범위 내 최댓값
    예) 1~5번째 행 내에서 3번째 행이 가장 크면 전체 다 3번째 행 값으로
  • WINDOW_MIN(집계[필드], 시작 위치, 끝 위치)
    ⇒ 지정한 윈도우 범위 내 최솟값
    예) 1~5번째 행 내에서 3번째 행이 가장 작으면 전체 다 3번째 행 값으로

4) RANK 함수

: 순위를 나타내는 함수

  • RANK(집계[필드], asc | desc)
    ⇒ 집계된 필드의 순위를 반환
    - asc: 오름차순 순위
    - desc: 내림차순 순위 (default)
    - asc, desc는 생략 가능
  • RANK_DENSE(집계[필드], asc | desc)
    ⇒ 집계된 필드의 순위 반환, 순위에 gap이 없음
    - 예) 공동 1위가 3명이어도 다음 4위는 2위로 표시됨
  • RANK_UNIQUE(집계[필드], asc | desc)
    ⇒ 집계된 필드의 순위 반환, 유니크한 순위
    - 예) 공동 1위가 3명이어도 각각 1위, 2위, 3위로 설정함
    - 같은 순위를 가질 수 없음, 같은 순위에 한해서는 랜덤으로 자동 순위 분배

3-5. 와플차트/유닛차트 실습

와플차트란?

동일한 크기의 사각형을 쌓아 만든 차트이며 형태가 와플을 닮아 와플차트라고 불림
예) KPI가 0-100% 사이의 백분율로 나타날 때특정 요소가 전체에서 차지하는 비율을 표현하고자 할 때 자주 쓰임

와플차트 생성과정

1. 필드 배치

: Column과 Row를 각각 열과 행으로 옮깁니다.

2. 분석에서 측정값 집계 해제

3. 마크 사각형으로 변환

4. 사각형의 크기 와플 형태에 알맞게 조정

5. 계산식 필드 생성

  • 데이터 > vgsales(vgsales)를 클릭한 뒤 계산된 필드(NA Sales Portion)를 생성합니다.
  • 계산된 필드에 SUM([NA Sales])/SUM([Global Sales])을 입력하여 비디오 게임의 북미 판매 비중을 구합니다.

6. 색상 마크 추가

  • 데이터 > template(waffle)을 클릭한 뒤 계산된 필드(NA Color)를 생성합니다.
  • 계산된 필드에 [vgsales(vgsales)].[NA Sales Portion]>=SUM([Percentage])를 입력합니다. → 색상 마크에 드래그

7. 차트 서식 수정

  • 행과 열의 머리글 표시 해제
  • 라인 서식에서 격자선 제거
  • 색상 변경

8. 차트 주석 추가

  • 세부정보에 NA Sales Portion을 Drag & Drop 해줍니다.
  • 회색 부분의 가운데에 오른쪽 마우스 클릭 후 주석추가 > 마크를 클릭합니다.
  • <vgsales(vgsales).SUM(NA Sales Portion)>만 남기고 폰트 사이즈를 적절히 설정해줍니다.

9. 주석 서식 변경

  • 마크 > 집계(NA Sales Portion) > 서식 > 패널을 누릅니다.
  • 기본값에서 숫자를 백분율(소수 자리수 1)로 변경합니다.

최종 대시보드


유닛차트란?

특정 항목의 수량이나 개수를 표현하는데 적합한 차트
예) 인구 및 인원 수, 스포츠에서의 득점, 수상 기록 등을 표현할 때 자주 쓰임

유닛차트 생성과정

1. 필드 배치

  • Genre를 행 메뉴에 드래그
  • ID에 해당하는 Rank를 세부정보 마크에 드래그 → 해당 필드 차원, 불연속형으로 변경합니다.

2. Grouping으로 계산식 필드 생성

  • 한 장르에 최대 3316개의 비디오 게임이 존재하기 때문에 간결하게 표현하기 위하여 100을 나누어 줍니다.
  • Grouping이라는 계산된 필드를 생성한 다음 INT(INDEX()/100) 를 입력합니다.
  • Grouping을 열에 Drag & Drop 해줍니다.
  • Grouping의 다음을 사용하여 계산을 Rank로 지정해줍니다.

3. 마크 유형, 크기 조정

  • 마크 유형을 모양으로 변경, 크기 조절

4. 원 겹침 방지용 계산식 필드 생성

  • INT(INDEX()/100) 으로 인해 하나의 원이 아닌 100개의 원이 겹쳐져 있습니다.
  • 원을 여러개 중첩하지 않기 위해 Filter라는 계산된 필드를 생성합니다.
  • INT(INDEX()-1)% 100 = 0 를 입력한 후 Filter를 필터에 드래그합니다.

5. 필터에 놓고 참만 선택

6. 필터 계산방식 변경 (Rank)

  • Filter의 화살표를 클릭한 후 다음을 사용하여 계산에서 Rank를 지정합니다.
  • 다시 참을 누른후 확인을 누릅니다. (오류 메시지가 뜬다면 전부 X를 눌러 주세요.)

7. 마크 모양 편집

  • 필드값 내림차순 정렬
  • 모양을 다운받은 컨트롤러 이미지로 바꿉니다.
  • Genre를 색상 마크에 드래그해줍니다.

8. WINDOW_SUM 계산식 필드 생성

  • Genre를 레이블에 드해랙그해다니.
  • 더블클릭한 후 WINDOW_SUM(COUNT([Genre])) 로 수정합니다.
  • 화살표를 클릭한 후 다음을 사용하여 계산에서 Rank를 지정합니다.
  • 열의 머리글 표시를 해제합니다.

최종 대시보드


3-6. 파라미터/LOD 계산식 활용 실습

  1. 매개변수 만들기 (Single parameter, Multi parameter)
  2. 다양한 계산식 함수 사용하기 (FIXED, EXCLUDE 함수)
  • FIXED : 특정 필드를 기준으로 집계해주는 함수
  • EXCLUDE : 특정 필드를 제외하고 집계해주는 함수
  • Parameter: 사용자가 직접 입력할 수 있는 변수
  • Parameter action: 사용자에게 입력값(인수)을 받아서 대시보드를 자유자재로 컨트롤
profile
nlp researcher

0개의 댓글