
ADsP R 기초 문법과 자료 구조(벡터·행렬·배열·리스트·데이터프레임·팩터), 자주 나오는 함수와 결과값 핵심 정리
3과목은 R 코드 결과를 보고 답을 고르는 문제가 섞여 나와서 기본 문법은 꼭 알아야 해
처음 R을 보는 사람도 이해할 수 있게 자료 구조와 결과값 위주로 정리해보자
ADsP 기초이론 정리 시리즈 18탄!!!
과목 : 3과목 데이터 분석
세부 영역 : R 기초와 데이터 마트 - R 기초
▶ [이론 17] 분석 조직 구조와 데이터 거버넌스 보러가기
1. R이란?
R은 통계 분석과 시각화에 특화된 오픈소스 프로그래밍 언어야
패키지를 설치해 기능을 확장할 수 있고, ADsP 3과목 예시 코드도 대부분 R로 나와
2. R의 기본 데이터 타입
| 타입 | 설명 | 예시 |
| numeric (숫자형) | 정수·실수 | 1, 3.14 |
| character (문자형) | 문자열 | "ADsP" |
| logical (논리형) | 참·거짓 | TRUE, FALSE |
| NA | 결측값 (값이 없음) | is.na(x)로 확인 |
| NULL | 아무것도 없는 빈 객체 | length(NULL) = 0 |
| NaN | 숫자가 아님 (Not a Number) | 0/0 |
3. R의 자료 구조
| 자료 구조 | 특징 | 생성 함수 |
| 벡터 (Vector) | 같은 타입 데이터의 1차원 묶음, R의 기본 단위 | c(1, 2, 3) |
| 행렬 (Matrix) | 같은 타입의 2차원 구조 (행 × 열) | matrix(1:6, nrow=2) |
| 배열 (Array) | 같은 타입의 3차원 이상 구조 | array(1:24, dim=c(2,3,4)) |
| 리스트 (List) | 서로 다른 타입·구조를 함께 담을 수 있음 | list(name="A", score=c(90,80)) |
| 데이터프레임 (Data Frame) | 열마다 다른 타입 가능한 2차원 표 (가장 많이 쓰임) | data.frame(x=1:3, y=c("a","b","c")) |
| 팩터 (Factor) | 범주형 데이터 (레벨을 가짐) | factor(c("남","여","남")) |
포인트 : 벡터에 숫자와 문자를 섞으면 전부 문자형으로 바뀌어 (c(1, "a") → "1", "a")
4. 자주 나오는 R 문법과 결과
| 코드 | 결과 / 의미 |
| x <- c(3, 5, 7) | x에 벡터 저장 (<- 는 할당 연산자) |
| x[2] | 5 (R의 인덱스는 1부터 시작!) |
| x[-1] | 5 7 (음수 인덱스는 해당 원소 제외) |
| 1:5 | 1 2 3 4 5 |
| seq(1, 10, by=3) | 1 4 7 10 |
| rep(2, times=3) | 2 2 2 |
| length(x), mean(x) | 원소 개수 3, 평균 5 |
| x * 2 | 6 10 14 (벡터 연산은 원소별로) |
5. 데이터 확인 함수
| 함수 | 기능 |
| head(df) / tail(df) | 앞 / 뒤 6행 출력 |
| str(df) | 데이터 구조(타입·변수) 확인 |
| summary(df) | 기초 통계량 요약 (최소·Q1·중앙값·평균·Q3·최대) |
| dim(df), nrow, ncol | 행·열 개수 |
| rbind / cbind | 행 방향 / 열 방향으로 결합 |
[ 최근 기출 출제 포인트 ]
| 회차 | 출제 포인트 |
| 47회 | R 기초 파트에서 데이터 비대칭(히스토그램)과 평균·중앙값 관계 해석 |
| 48회 | 회귀분석 결과를 R summary 출력으로 해석하는 문제 (이론 30) |
| 출제 경향 | R 코드 실행 결과 고르기, 자료 구조 특징 구분, summary 출력 해석 |
[ 자주 묻는 질문 ]
Q. 코딩을 몰라도 3과목 R 문제 풀 수 있어?
A. 시험은 코드를 작성하라는 게 아니라 결과를 읽는 수준이라 자료 구조, 인덱스 규칙, summary 해석만 알면 충분해
Q. NA랑 NULL 차이가 뭐야?
A. NA는 "자리는 있는데 값이 없는 것(결측)", NULL은 "자리 자체가 없는 빈 객체"야
[ 시험 포인트 정리 ]
| 키워드 | 핵심 |
| 벡터 | 같은 타입 1차원, c()로 생성 |
| 데이터프레임 | 열마다 다른 타입 가능한 2차원 표 |
| 리스트 | 서로 다른 타입·구조 함께 저장 |
| 인덱스 | 1부터 시작, 음수는 제외 |
| 타입 혼합 | 숫자 + 문자 → 문자형 |
| summary() | 최소·Q1·중앙값·평균·Q3·최대 |
[ 기출변형문제 ]
※ 47~49회 출제 포인트를 바탕으로 새로 만든 변형문제야
Q1. x <- c(10, 20, 30, 40) 일 때 x[-2]의 결과는?
① 20
② 10 30 40
③ 10 20
④ 30 40
Q2. 열마다 서로 다른 데이터 타입을 가질 수 있는 2차원 자료 구조는?
① 벡터
② 행렬
③ 데이터프레임
④ 배열
Q3. c(1, 2, "three")를 실행한 결과 벡터의 타입은?
① numeric
② character
③ logical
④ factor
Q4. seq(2, 11, by=3)의 결과로 옳은 것은?
① 2 5 8 11
② 2 3 4 5
③ 3 6 9
④ 2 4 6 8 10
Q5. 데이터프레임의 최소값·1사분위수·중앙값·평균·3사분위수·최대값을 한 번에 보여주는 함수는?
① str()
② head()
③ summary()
④ dim()
[ 정답 & 해설 ]
| 문항 | 정답 및 해설 |
| Q1 | ② 음수 인덱스는 2번째 원소(20)를 제외 → 10 30 40 |
| Q2 | ③ 데이터프레임은 열마다 다른 타입 가능 |
| Q3 | ② 숫자와 문자를 섞으면 모두 문자형(character) |
| Q4 | ① 2부터 3씩 증가해 11까지 → 2 5 8 11 |
| Q5 | ③ summary()는 요약 통계량 6가지 출력 |
다음 글은 분석용 데이터를 만드는
[이론 19] 데이터 마트와 요약변수 · 파생변수
▶ [이론 19] 데이터 마트와 요약변수·파생변수 보러가기
를 정리해볼게!
▶ ADsP · AI 자격증 스터디 자료 보러가기 (AI DATA 자격증 스터디 클럽)
ADsP 준비하시는 분들 모두 화이팅입니다~~~~~ ^^