본문으로 바로 가기

데이터분석 준전문가 (ADsP) · 데이터분석 과목

데이터분석 준전문가 (ADsP) R기초와 데이터 마트 개념 정리

중요도 ★★★☆☆ · 20% (추정)

AI 작성 · 검수 완료

AI가 새로 쓴 글 가운데, 작성과 분리된 AI 검증(다시 읽고 사실·수치 확인)을 통과한 단원만 싣습니다. 틀린 곳을 발견하면 알려 주세요.

개요

이 단원은 분석 도구인 R의 기초와, 분석에 쓸 데이터를 미리 모아 다듬는 데이터 마트, 그리고 빠지거나 튀는 값을 처리하는 방법을 배웁니다. 3과목 문제를 풀려면 R 코드와 출력 결과를 읽을 줄 알아야 하므로 기본 문법을 익혀 두는 것이 중요합니다.

R의 기본 자료 구조는 벡터, 행렬, 배열, 리스트, 데이터 프레임입니다. 벡터·행렬·배열은 한 가지 자료형만 담을 수 있고, 리스트와 데이터 프레임은 서로 다른 자료형을 함께 담을 수 있습니다. R은 위치 번호를 1부터 세며, 빠진 값은 NA로 나타냅니다.

데이터 마트는 데이터 웨어하우스에서 특정 부서나 목적에 맞는 부분만 뽑아 만든 작은 저장소입니다. 분석에 쓰기 위해 여러 값을 합치거나 평균 낸 요약변수와, 분석가가 의미를 부여해 새로 만든 파생변수를 만듭니다. 데이터를 다루는 R 패키지로 reshape, sqldf, plyr, data.table 등이 있습니다.

결측값은 행을 지우거나, 평균 같은 대표값으로 채우거나, 여러 번 채워 분석한 결과를 합치는 다중대치법으로 처리합니다. 이상값은 평균에서 표준편차의 3배 이상 떨어졌는지, 또는 상자그림에서 사분위수 범위의 1.5배를 벗어났는지로 찾습니다.

핵심 개념

  • R 자료 구조

    벡터는 같은 자료형 값의 1차원 묶음, 행렬은 2차원, 배열은 여러 차원(주로 3차원 이상)입니다. 리스트는 서로 다른 자료형과 구조를 한데 담을 수 있고, 데이터 프레임은 열마다 다른 자료형을 담을 수 있는 표입니다.

    외우는 요령'한 가지 자료형만 = 벡터·행렬·배열, 섞어도 됨 = 리스트·데이터 프레임'.

  • R 기본 문법

    c()로 벡터를 만들고, seq()로 일정한 간격의 수열, rep()로 반복 값을 만듭니다. 위치 번호는 1부터 세고, 빠진 값은 NA, 정의되지 않은 계산 결과는 NaN, 값이 아예 없는 것은 NULL로 나타냅니다.

    외우는 요령벡터에 문자와 숫자를 섞으면 모두 문자로 바뀝니다. 출력 결과 문제에서 자주 나옵니다.

  • 데이터 마트와 요약·파생변수

    데이터 마트는 데이터 웨어하우스에서 목적에 맞는 부분만 모은 작은 저장소입니다. 요약변수는 기간별 구매 금액 합계처럼 여러 값을 모아 요약한 변수이고, 파생변수는 '주 구매 시간대'처럼 분석가가 기준을 정해 새로 만든 변수입니다.

    외우는 요령파생변수는 '주관이 들어간 새 변수', 요약변수는 '모아서 합친 변수'.

  • 데이터 가공 패키지

    reshape는 melt()로 데이터를 긴 형태로 녹이고 cast()로 원하는 모양으로 다시 짭니다. sqldf는 R에서 SQL 문장으로 데이터를 다루고, plyr는 데이터를 나누고 함수를 적용한 뒤 다시 합치는 방식(split-apply-combine)으로 처리합니다. data.table은 큰 데이터를 빠르게 다룹니다.

    외우는 요령'녹이고 짜기 = reshape, SQL = sqldf, 나누고 합치기 = plyr'.

  • 결측값 처리

    결측값이 있는 행을 지우는 완전 사례 분석, 평균 같은 대표값으로 채우는 평균 대치법, 비슷한 다른 관측값으로 채우는 단순확률 대치법, 여러 번 채워 분석한 뒤 결과를 합치는 다중대치법이 있습니다. 다중대치법은 대치 → 분석 → 결합 순서로 진행합니다.

    외우는 요령행을 지우면 자료가 줄어 정보가 손실될 수 있습니다. 다중대치는 '대치·분석·결합'.

  • 이상값 탐지

    평균에서 표준편차의 3배보다 멀리 떨어진 값을 이상값으로 보는 방법(ESD)과, 상자그림에서 1사분위수보다 사분위수 범위(IQR)의 1.5배 아래, 3사분위수보다 1.5배 위에 있는 값을 이상값으로 보는 방법이 있습니다. 이상값이 늘 지워야 할 값은 아니며 의미 있는 값일 수 있습니다.

    외우는 요령'평균 ± 3σ', '사분위수 ± 1.5 × IQR'.

자주 나오는 포인트

  • R 출력 결과 문제에서 벡터의 자료형이 문자로 바뀌는 경우를 확인하세요.
  • NA, NaN, NULL의 차이를 묻는 문제가 나옵니다.
  • 요약변수와 파생변수를 구분하는 예시 문제가 자주 나옵니다.
  • 상자그림의 이상값 기준은 사분위수 범위의 1.5배입니다.

헷갈리는 것 비교: 요약변수와 파생변수

구분요약변수파생변수
만드는 방법여러 값을 합치거나 평균 냄분석가가 기준을 정해 새로 만듦
특징여러 분석에 다시 쓰기 좋음주관이 들어갈 수 있어 논리가 필요
예월별 구매 금액 합계주 구매 시간대, 근거리 구매 여부

대표 문제 3개

검수를 마친 예상문제 가운데 이 단원의 대표 문제입니다.

예상문제검수 완료데이터분석 › R기초와 데이터 마트★★★★☆

문제 1. 어떤 변수의 1사분위수(Q1)가 20, 3사분위수(Q3)가 40이다. 사분위수 범위(IQR)를 이용해 Q1 − 1.5×IQR보다 작거나 Q3 + 1.5×IQR보다 큰 값을 이상값으로 판정할 때, 이상값에 해당하는 것은?

  1. ① −5
  2. ② 55
  3. ③ 65
  4. ④ 72
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ④ 72

핵심: 이상값 기준: Q1−1.5IQR 미만, Q3+1.5IQR 초과

  1. IQR = Q3 − Q1 = 40 − 20 = 20
  2. 1.5 × IQR = 1.5 × 20 = 30
  3. 아래 기준 = Q1 − 30 = 20 − 30 = −10
  4. 위 기준 = Q3 + 30 = 40 + 30 = 70
  5. −10 이상 70 이하는 정상 범위 → 72는 70보다 크므로 이상값

검산: 72 − 40 = 32 로, 30보다 큽니다.

틀린 선지

  • 65: 70 이하라서 정상 범위입니다.
  • −5: −10 이상이라서 정상 범위입니다.
  • 55: 70 이하라서 정상 범위입니다.
예상문제검수 완료데이터분석 › R기초와 데이터 마트★★★☆☆

문제 2. R에서 다음 코드를 실행했을 때 출력되는 결과는? x <- c(1, "a", TRUE) class(x)

  1. ① "logical"
  2. ② "character"
  3. ③ "numeric"
  4. ④ "list"
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ② "character"

핵심: 벡터는 한 가지 자료형만 — 섞이면 문자형으로 바뀜

R의 벡터(c 함수로 만든 자료)에는 한 가지 자료형만 들어갈 수 있습니다. 서로 다른 자료형을 섞으면 더 넓은 쪽으로 자동 변환됩니다.

  • 변환 순서: 논리형(logical) → 숫자형(numeric) → 문자형(character)
  • 문자 "a"가 들어 있으므로 1과 TRUE도 문자 "1", "TRUE"로 바뀝니다.
  • 따라서 class(x)의 결과는 "character"입니다.

틀린 선지

  • "numeric": 숫자만 있을 때의 결과입니다. 문자 "a"가 있으면 문자형이 됩니다.
  • "logical": TRUE/FALSE만 있을 때의 결과입니다.
  • "list": 여러 자료형을 그대로 담으려면 c()가 아니라 list()를 써야 합니다.
예상문제검수 완료데이터분석 › R기초와 데이터 마트★★★☆☆

문제 3. R에서 다음 코드를 실행했을 때 출력되는 결과는? x <- c(10, 20, 30, 40, 50) x[-2]

  1. ① 10 30 40 50
  2. ② 20
  3. ③ 10 20 30 40
  4. ④ 40
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ① 10 30 40 50

핵심: R 인덱스 앞의 마이너스(-)는 그 위치를 뺀다는 뜻

R에서 대괄호 안에 음수 번호를 쓰면 그 위치의 원소를 빼고 나머지를 보여 줍니다.

  1. x는 10, 20, 30, 40, 50 (위치 1~5)
  2. x[-2]는 2번째 원소(20)를 뺀 나머지
  3. 결과: 10 30 40 50

참고로 R의 위치 번호는 0이 아니라 1부터 시작합니다.

틀린 선지

  • 40: 파이썬처럼 '뒤에서 두 번째'로 착각한 결과입니다. R에서는 음수가 '제외'를 뜻합니다.
  • 20: x[2]의 결과입니다.
  • 10 20 30 40: 마지막 원소를 뺀 결과(x[-5])입니다.
이 단원 5문제 풀기 →