[ADsP - 데이터 분석] RStudio 완전 정복! 벡터·팩터·데이터프레임으로 시작하는 R 프로그래밍 기초
firststep 에디터
IT / 자격증 전문 라이터
3-1 R 프로그래밍 기초 & 데이터 마트
RStudio 완전 정복! 벡터·팩터·데이터프레임으로 시작하는 R 프로그래밍 기초
R을 처음 배우는 초보자라면 가장 먼저 마주하게 되는 단어가 바로 RStudio와 자료구조입니다. 처음 접할 땐 낯설고 복잡하게 느껴질 수 있지만, 사실 알고 보면 엑셀처럼 다루기 쉬운 부분도 많아요. 특히 Vector, Factor, DataFrame은 R의 핵심 구조로, 이후 데이터 분석은 물론 머신러닝까지 이어지는 중요한 기반이 됩니다.
이 글에서는 R 프로그래밍의 출발점이라 할 수 있는 RStudio 설치 방법부터, 꼭 알아야 할 세 가지 핵심 자료구조인 Vector, Factor, DataFrame까지 상세히 알려드릴게요. 또한 ADsP 자격증을 준비하는 분들을 위해 관련된 기출 개념과 연관성도 함께 짚어볼 예정이니, 끝까지 읽어보시길 추천드립니다.
목차
1. RStudio 환경 이해하기 ?️ [모의고사 포함]
처음 R을 설치하고 나면 가장 먼저 마주하게 되는 화면이 바로 RStudio입니다. RStudio는 R 언어를 훨씬 더 쉽게 다룰 수 있도록 도와주는 통합 개발 환경(IDE)이에요. R 자체는 콘솔 기반 언어라 초보자에게 불편할 수 있지만, RStudio는 친절한 GUI 덕분에 코드 작성, 실행, 그래프 확인, 파일 관리까지 한눈에 처리할 수 있죠.
RStudio 주요 패널 구성 알아보기
- Source(스크립트 창): R 코드를 작성하고 저장할 수 있는 공간
- Console(콘솔): 직접 명령어를 입력하고 결과를 바로 확인할 수 있는 창
- Environment/History: 변수 목록, 실행 이력 등을 확인하는 패널
- Files/Plots/Packages/Help: 그래프 확인, 패키지 관리, 도움말 검색 등을 처리
설치는 어떻게 하나요?
1. R 본체 설치: CRAN 공식 사이트에서 운영체제에 맞는 버전을 다운로드 후 설치
2. RStudio 설치: RStudio 공식 사이트에서 Desktop 버전을 선택 후 설치
Posit
The best data science is open source. Posit is committed to creating incredible open-source tools for individuals, teams, and enterprises.
posit.co
The Comprehensive R Archive Network
cran.r-project.org
설치 후 실행하면 깔끔한 4분할 화면이 나옵니다. 오른쪽 아래에 있는 "Packages"에서 필요한 패키지를 검색해서 바로 설치할 수도 있어요. 앞으로 다룰 dplyr, tidyr 같은 tidyverse 패키지도 여기서 설치 가능하답니다.
? 모의고사 문제 (객관식 5문항)
- RStudio에서 콘솔(Console) 창의 주요 기능은?
ⓐ 데이터 시각화 / ⓑ 패키지 설치 / ⓒ 명령어 실행 / ⓓ 코드 저장
정답: ⓒ – 콘솔 창은 명령어를 직접 입력하고 실행 결과를 확인하는 공간입니다. - RStudio에서 그래프를 확인할 수 있는 창은?
ⓐ Source / ⓑ Console / ⓒ Environment / ⓓ Plots
정답: ⓓ – 시각화된 결과는 ‘Plots’ 창에서 확인할 수 있습니다. - RStudio의 Source 창에서 할 수 없는 작업은?
ⓐ 코드 작성 / ⓑ 코드 실행 / ⓒ 데이터 시각화 / ⓓ 파일 저장
정답: ⓒ – 시각화 결과는 ‘Plots’ 패널에서 확인해야 합니다. - 패키지를 설치할 수 있는 곳은?
ⓐ Files / ⓑ Packages / ⓒ Console / ⓓ Help
정답: ⓑ – ‘Packages’ 탭에서 검색 및 설치가 가능합니다. - RStudio 설치 전에 먼저 설치해야 하는 프로그램은?
ⓐ Python / ⓑ Java / ⓒ R / ⓓ Excel
정답: ⓒ – RStudio는 R이 설치되어 있어야 작동합니다.
지금까지 RStudio의 기본 구조와 설치 방법, 주요 패널을 살펴봤습니다. 앞으로 배울 R 문법과 자료구조를 다룰 때 이 환경을 충분히 이해하고 활용하는 것이 매우 중요합니다.
R 프로그래밍 기초, RStudio 설치 방법, ADsP R 언어 같은 키워드를 계속 기억해주세요!
2. Vector란 무엇인가? ? [모의고사 포함]
R에서 데이터를 다룰 때 가장 먼저 마주치는 개념이 바로 Vector(벡터)입니다. 벡터는 숫자, 문자, 논리값 등 동일한 자료형의 데이터를 일렬로 담은 일종의 "데이터 상자"예요. 가장 기본적이면서도, 거의 모든 분석의 시작점이 되는 구조라 꼭 제대로 이해해야 하죠.
벡터를 이해하지 못하면 데이터프레임이나 매트릭스 같은 복잡한 자료구조도 손에 잡히지 않습니다. 특히 ADsP 시험에서도 자주 등장하는 개념이기 때문에 예시와 함께 꼭 정리해볼게요.
? Vector의 기본 개념
- 동일한 타입의 값들로 구성됩니다 (숫자, 문자, 논리값 등).
- R에서 가장 기본적인 자료 구조입니다.
-
c()함수를 이용해 생성합니다.
? 벡터 생성 예제
# 숫자형 벡터
num_vec <- c(1, 2, 3, 4, 5)
# 문자형 벡터
char_vec <- c("apple", "banana", "cherry")
# 논리형 벡터
logi_vec <- c(TRUE, FALSE, TRUE)
여기서 c()는 concatenate의 약자로, 여러 값을 하나로 연결해주는 함수입니다. 모든 벡터는 이 함수를 통해 만들어지죠. 중요한 건 "한 벡터 안에는 같은 자료형만" 들어갈 수 있다는 사실입니다.
? 모의고사 문제 (객관식 5문항)
- R에서 벡터를 생성하는 함수는?
ⓐ vector() / ⓑ matrix() / ⓒ c() / ⓓ list()
정답: ⓒ – c()는 concatenate 함수로, 벡터 생성을 위해 사용됩니다. - 다음 중 벡터의 특징으로 올바른 것은?
ⓐ 서로 다른 타입 허용 / ⓑ 한 가지 타입만 가능 / ⓒ 데이터프레임과 동일 구조 / ⓓ 열과 행 모두 가짐
정답: ⓑ – 벡터는 동일한 데이터 타입만 허용합니다. - 논리형 벡터의 예는?
ⓐ c("TRUE", "FALSE") / ⓑ c(TRUE, FALSE) / ⓒ c(1, 0) / ⓓ c("yes", "no")
정답: ⓑ – 대문자 TRUE와 FALSE는 논리형입니다. - 다음 중 잘못된 벡터 생성 방식은?
ⓐ c(1, 2, "a") / ⓑ c(1, 2, 3) / ⓒ c(TRUE, FALSE) / ⓓ c("x", "y", "z")
정답: ⓐ – 숫자와 문자를 섞으면 모두 문자형으로 강제 변환됩니다. - 벡터에 사용되는 기본 연산은?
ⓐ 반복 / ⓑ 조건 / ⓒ 인덱싱 / ⓓ 모두 해당
정답: ⓓ – 벡터는 반복, 조건, 인덱싱 연산 모두 지원합니다.
R 벡터 개념, R c() 함수, ADsP R 문법 등의 키워드를 기억해두면 ADsP 준비에 큰 도움이 됩니다!
3. Factor로 범주형 데이터 다루기 ? [모의고사 포함]
범주형 데이터를 처리할 때 R에서는 factor(팩터)라는 자료구조를 사용합니다. 팩터는 벡터처럼 생겼지만, 안에 들어있는 값들이 미리 정의된 범주(levels)를 갖는 것이 핵심이에요. 예를 들어 "봄", "여름", "가을", "겨울" 같은 계절 정보를 다룰 때 팩터를 사용하면 데이터의 속성을 명확히 구분할 수 있습니다.
? Factor의 특징
- 팩터는 벡터의 확장형으로 레벨(level)이라는 범주 정보를 가집니다.
- 주로 범주형(categorical) 데이터를 처리할 때 사용됩니다.
-
factor()함수를 사용해 생성합니다.
? Factor 생성 예제
# 기본 factor 생성
season <- factor(c("봄", "여름", "가을", "겨울", "여름", "봄"))
# 레벨 순서를 지정한 factor
grade <- factor(c("B", "C", "A", "B", "A"),
levels = c("A", "B", "C"),
ordered = TRUE)
팩터의 가장 큰 장점은 레벨 순서 지정이 가능하다는 점이에요. 위 코드에서 grade 벡터는 A > B > C 순으로 정렬된다는 걸 명시했죠. 이처럼 순서가 있는 범주형 데이터를 다룰 때는 ordered = TRUE 옵션을 활용하면 됩니다.
? 모의고사 문제 (객관식 5문항)
- Factor의 가장 핵심적인 구성 요소는?
ⓐ Index / ⓑ Level / ⓒ Type / ⓓ Range
정답: ⓑ – 팩터는 level이라는 범주값이 핵심입니다. - 팩터를 생성하는 함수는?
ⓐ c() / ⓑ matrix() / ⓒ data.frame() / ⓓ factor()
정답: ⓓ – factor() 함수로 팩터 자료형을 생성합니다. - 팩터에서 levels 옵션의 역할은?
ⓐ 데이터 삭제 / ⓑ 벡터 병합 / ⓒ 범주 순서 정의 / ⓓ 결측치 처리
정답: ⓒ – levels를 통해 범주의 순서를 정의합니다. - 순서가 있는 팩터를 만들기 위한 옵션은?
ⓐ ordered = TRUE / ⓑ factor = TRUE / ⓒ sequence = TRUE / ⓓ rank = TRUE
정답: ⓐ – ordered = TRUE 옵션을 사용합니다. - 팩터가 유용한 경우는?
ⓐ 수치형 데이터 처리 / ⓑ 행렬 연산 / ⓒ 범주형 데이터 처리 / ⓓ 그래프 계산
정답: ⓒ – 팩터는 범주형 데이터를 처리할 때 유용합니다.
R factor 함수, R 범주형 데이터, ADsP 자료구조 키워드는 꼭 기억해두세요!
4. DataFrame의 개념과 활용법 ? [모의고사 포함]
R 프로그래밍에서 가장 실무적으로 많이 쓰이는 자료 구조가 바로 DataFrame입니다. 사실상 엑셀의 표나 데이터베이스의 테이블을 생각하면 이해하기 쉬운데요. 열(column)마다 데이터 타입이 다를 수 있고, 행(row)은 관측값을 나타내는 형태로 구성돼 있어요.
ADsP 시험에서도 데이터프레임과 리스트의 차이, 인덱싱 방법, 행/열 접근 방식 등이 자주 출제되니 꼭 정리하고 넘어가야 하는 개념입니다.
? DataFrame의 구조 이해하기
- 여러 개의 벡터를 같은 길이로 묶어 테이블 형태로 구성한 구조
- 열마다 다른 타입의 데이터 가능 (숫자, 문자, 논리형 등 혼합 가능)
-
data.frame()함수를 사용해 생성
? DataFrame 생성 예제
# 데이터프레임 생성
students <- data.frame(
name = c("홍길동", "이몽룡", "성춘향"),
score = c(85, 90, 88),
pass = c(TRUE, TRUE, FALSE)
)
# 열 이름 확인
names(students)
# 특정 열 접근
students$score
# 특정 행 접근
students[2, ]
여기서 students$name 처럼 $기호를 통해 특정 열에 접근할 수 있고, [행, 열] 인덱싱을 활용하면 행과 열을 동시에 지정할 수 있습니다. 이는 엑셀의 셀 주소 지정과 매우 비슷하죠.
? 모의고사 문제 (객관식 5문항)
- DataFrame을 생성하는 함수는?
ⓐ matrix() / ⓑ list() / ⓒ data.frame() / ⓓ c()
정답: ⓒ – data.frame()은 데이터프레임 생성 함수입니다. - 데이터프레임에서 열(column)에 접근하는 방법은?
ⓐ df.row / ⓑ df[col] / ⓒ df$col / ⓓ df(col)
정답: ⓒ – $기호로 열 이름을 지정합니다. - DataFrame의 열끼리 타입이 달라도 되는 이유는?
ⓐ list 구조 기반 / ⓑ 행렬 구조 기반 / ⓒ 모두 숫자 / ⓓ 요소를 자동 변환
정답: ⓐ – 데이터프레임은 리스트 기반 구조이기 때문입니다. - df[3, 2]의 의미는?
ⓐ 3번째 열, 2번째 행 / ⓑ 3번째 행, 2번째 열 / ⓒ 2번째 열 이름 / ⓓ 열과 행을 바꿔 출력
정답: ⓑ – [행, 열] 순서로 접근합니다. - DataFrame 구조와 가장 유사한 것은?
ⓐ 배열 / ⓑ 리스트 / ⓒ 표(table) / ⓓ 숫자형 벡터
정답: ⓒ – 데이터프레임은 표 형태와 매우 유사합니다.
R 데이터프레임, data.frame 함수, ADsP 자료형 키워드를 기억하세요!
5. 자료구조 비교 및 정리표 ? [모의고사 포함]
지금까지 Vector, Factor, DataFrame 각각을 개별적으로 살펴봤다면, 이번에는 이들 구조를 한눈에 비교해보는 시간을 가져볼게요. 이렇게 비교하면 각각의 쓰임새가 더 명확히 드러나고, ADsP 시험에서도 빠르게 판단할 수 있어요.
? 자료구조 핵심 비교 표
| 구분 | Vector | Factor | DataFrame |
|---|---|---|---|
| 사용 목적 | 동일 타입의 데이터 나열 | 범주형 데이터 표현 | 표 형태로 여러 타입의 데이터 저장 |
| 데이터 타입 | 숫자/문자/논리형 중 하나 | 숫자형 내부 구조 + 범주 정보 | 열마다 다른 타입 허용 |
| 접근 방법 | [1], [2] 등 인덱스 | levels(), as.character() 등 | $연산자, [행, 열] 인덱싱 |
| 생성 함수 | c() | factor() | data.frame() |
| 주요 활용 | 계산, 반복 처리 | 범주 분류, 시각화 그룹화 | 데이터셋 구성 및 분석 |
? 모의고사 문제 (객관식 5문항)
- 벡터와 팩터의 가장 큰 차이는?
ⓐ 데이터 타입 / ⓑ 길이 / ⓒ 범주 존재 여부 / ⓓ 연산 속도
정답: ⓒ – 팩터는 범주(levels)를 가진 벡터입니다. - 다양한 타입의 열을 갖는 자료 구조는?
ⓐ Vector / ⓑ Matrix / ⓒ Factor / ⓓ DataFrame
정답: ⓓ – 데이터프레임은 열마다 타입이 달라도 됩니다. - factor() 함수의 출력 형태는?
ⓐ 논리형 / ⓑ 수치형 / ⓒ 벡터 + 레벨 정보 / ⓓ 리스트
정답: ⓒ – 팩터는 숫자형 벡터 + 범주 정보 구조입니다. - 벡터를 생성하는 가장 적절한 함수는?
ⓐ matrix() / ⓑ list() / ⓒ c() / ⓓ table()
정답: ⓒ – c()는 가장 기본적인 벡터 생성 함수입니다. - DataFrame에서 행과 열을 지정하는 방식은?
ⓐ df[row, col] / ⓑ df(col, row) / ⓒ df[row.col] / ⓓ df(row:col)
정답: ⓐ – 행, 열 순서로 대괄호 인덱싱합니다.
R 자료구조 비교, 벡터 vs 팩터 vs 데이터프레임, ADsP 데이터 구조 기억해두세요!
6. ADsP 기출과 연결되는 핵심 정리 ? [모의고사 포함]
지금까지 배운 Vector, Factor, DataFrame은 단순한 문법을 넘어서 ADsP 시험에서 자주 출제되는 단골 개념입니다. 실제 기출문제나 모의고사를 보면 자료구조 간 차이, 생성 함수, 인덱싱 방식 등이 빠지지 않고 등장하죠.
이 단락에서는 시험과 직결되는 핵심 개념 요약 + 실전 포인트를 정리해드립니다. 특히 ADsP 초보 수험생이라면 이 내용을 머릿속에 딱 정리해두면 이후 문제풀이 속도가 확 올라가요!
? 꼭 외워야 할 요점 정리
- Vector: 동일한 자료형,
c()함수 사용, 인덱싱은 [ ] - Factor: 범주형 데이터,
factor(),levels(), 순서 있는 팩터는 ordered = TRUE - DataFrame: 열마다 다른 타입 가능,
data.frame(), $기호 또는 [행, 열] 인덱싱
? 실전 기출 포인트 요약
- 자료형 변환: as.character(), as.numeric(), as.factor() 등 변환 함수 숙지
- 결합 함수: cbind(), rbind() – 행/열 결합 관련 개념 자주 출제
- 자료구조 간 차이점 설명형 문제 – 기출에서 빈출!
? 모의고사 문제 (객관식 5문항)
- 데이터프레임의 열 타입이 서로 다른 이유는?
ⓐ c()로 생성 / ⓑ list 기반 구조 / ⓒ 행렬로 처리 / ⓓ 팩터 포함 때문
정답: ⓑ – 데이터프레임은 리스트 기반이므로 서로 다른 타입 허용됩니다. - 다음 중 factor() 함수 사용 목적은?
ⓐ 수치형 데이터 생성 / ⓑ 문자열 결합 / ⓒ 범주형 변수 생성 / ⓓ 파일 불러오기
정답: ⓒ – 범주형 데이터를 다루기 위해 사용됩니다. - 다음 중 벡터에 해당하는 R 객체는?
ⓐ c(1, 2, 3) / ⓑ matrix(1:4) / ⓒ list(1, "a") / ⓓ data.frame()
정답: ⓐ – c()는 가장 기본적인 벡터 생성 방식입니다. - 팩터에서 순서를 지정할 수 있는 옵션은?
ⓐ ordered = TRUE / ⓑ levels = TRUE / ⓒ arrange = TRUE / ⓓ class = factor
정답: ⓐ – 순서 있는 팩터를 위해 사용하는 옵션입니다. - DataFrame에서 특정 행을 추출하는 방법은?
ⓐ df$[row] / ⓑ df[row, ] / ⓒ df(row) / ⓓ df[row.col]
정답: ⓑ – [행, 열] 인덱싱 방식으로 접근합니다.
ADsP 기출 자료구조, R 시험 대비 요약, 벡터 팩터 데이터프레임 핵심은 꼭 복습해보세요!
마무리 요약 및 학습 전략 ✨
지금까지 R 프로그래밍의 기본 자료구조인 Vector, Factor, DataFrame을 중심으로 학습해보았습니다. 이 세 가지는 R을 사용하는 모든 분석 작업의 기초가 되며, ADsP 자격증 시험에서도 반복적으로 출제되는 주요 주제입니다.
장기적으로는 Tidyverse 패키지와 결합하여 데이터 전처리 → 탐색 → 분석까지 이어지는 실전 작업에 대비해보세요. 단기적으로는 이번 글의 내용을 바탕으로 모의고사 반복 풀이와 핵심 키워드 요약 정리만 잘해도 충분히 고득점을 노릴 수 있습니다.
다음 포스트에서는 Tidyverse의 핵심 패키지인 dplyr과 tidyr을 통해 실제 데이터를 다루는 방법을 본격적으로 배워보겠습니다. 궁금하시다면 뉴스레터 구독을 눌러주세요 ?
firststep 에디터 · IT / 자격증 전문 라이터
firststep.kr의 실무 에디터로서 무언가를 처음 도전하는 분들이 헤매지 않도록 검증된 지식과 실습 가이드를 작성합니다.
댓글 0개
댓글을 작성하려면 로그인이 필요합니다
간단한 이메일과 비밀번호로 3초 만에 가입하고 의견을 남겨보세요.
첫 번째 댓글을 남겨보세요!