📌 목차
1. R 벡터(Vector)와 인덱싱(Indexing)
2. R 행렬(Matrix)과 배열(Array)
3. 데이터프레임(Data Frame)
4. 팩터(Factor)와 벡터(Vector)
5. 날짜(Date) 자료형
6. class vs mode 차이
1. R 벡터(Vector)와 인덱싱(Indexing)
R에서 가장 기본이 되는 자료구조는 벡터(Vector)입니다.
벡터의 인덱싱에 대해서 먼저 해보겠습니다.
[] 대괄호를 이용해서 원하는 원소의 번호(인덱스)를 통해 그 원소를 출력할 수 있습니다.
x = c(1,2,3,4,5,6,7,8,9)
y = x
y[5] # 5번째 원소 출력
y[5] = 0 # 5번째 원소 수정
y[-5] # 5번째 원소 제외
y[c(1,3,5)] # 여러 원소 선택
y[-c(1,5)] # 여러 원소 제외
결과:
[1] 1 2 3 4 5 6 7 8 9
[1] 5
[1] 1 2 3 4 0 6 7 8 9
[1] 1 3 0
[1] 2 3 4 6 7 8 9
✅ 조건 인덱싱
y <= 5 # 조건 확인 (TRUE/FALSE)
which(y <= 5) # 조건 만족 인덱스
which.min(y) # 최소값 위치
sum(y) # 합계
sum(y <= 5) # 조건 만족 개수
결과:
[1] TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE
[1] 1 2 3 4 5
[1] 5
[1] 43
[1] 5
비교 연산자 같은 경우 T/F로 나온다는 것을 유의 하세요. 따라서 sum(y<=5)에서도 T의 개수를 세는 형식으로 인식하게 됩니다.
2. R 행렬(Matrix)과 배열(Array)
A = matrix(1:9, 3, 3)
A
class(A)
matrix에서 1:9는 1부터 9까지라는 것, 3, 3은 3행 3열로 행렬을 만들라는것이다.
결과:
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
[1] "matrix" "array"
- matrix: 2차원 자료 구조
- array: 다차원 자료 구조
행렬(matrix)은 배열(array)의 특수한 형태입니다. 따라서 class를 출력하는 경우 둘 다 나오게 된다.
행렬 인덱싱
A[1,2] # 1행 2열
A[ ,2] # 2열 전체
A[3, ] # 3행 전체
A[1:2, 2:3] # 부분 행렬
3. 데이터프레임(Data Frame)
DF = as.data.frame(A)
DF
class(DF)
B = as.matrix(DF)
class(B)
as.matrix는 데이터 형태를 데이터 프레임에서 행렬로 바꾸라는 것이다.
따라서 DF는 data.frame이지만 B는 matrix나 array로 볼 수 있다.
결과:
V1 V2 V3
1 1 4 7
2 2 5 8
3 3 6 9
[1] "data.frame"
[1] "matrix" "array"
- data.frame: 열마다 다른 자료형 가능
- matrix: 모든 원소가 동일 자료형
데이터프레임은 R 분석에서 가장 많이 쓰이는 자료 구조입니다.
4. 팩터(Factor)와 벡터(Vector)
x = c(1, 2, 1, 3, 2)
f = as.factor(x) # 범주형
y = as.vector(x) # 벡터
z = as.numeric(f) # 팩터 → 숫자
결과:
[1] 1 2 1 3 2
Levels: 1 2 3 #factor결과
[1] 1 2 1 3 2
[1] 1 2 1 3 2
👉 factor를 숫자로 변환하면 실제 값이 아니라 level 번호가 반환됩니다.
5. 날짜(Date) 자료형
d = as.Date('2025-03-15')
d
mode(d)
class(d)
결과:
[1] "2025-03-15"
[1] "numeric"
[1] "Date"
Date 클래스는 내부적으로는 숫자(numeric)로 저장되지만, 외부적으로는 "Date"로 표시됩니다.
6. class vs mode 차이
- class(): 자료 구조 유형 ("matrix", "data.frame", "factor", "Date")
- mode(): 내부 저장 형태 ("numeric", "character", "logical")
예시
- 행렬 A: class(A) → "matrix" "array", mode(A) → "numeric"
- 날짜 d: class(d) → "Date", mode(d) → "numeric"

그러면 다음 시간에는 유용한 추가 함수들에 대해서 해보겠습니다~ 오늘도 도움이 되셨으면 좋겠습니다 ㅎㅎ
'코딩' 카테고리의 다른 글
| [R 프로그래밍 기초] | 5-2. R 그래프 꾸미기 옵션 정리 (type, pch, lty, col) (0) | 2025.09.17 |
|---|---|
| [R 프로그래밍 기초] | 5. R 그래프 그리기 완벽 정리 (막대그래프, 원그래프, 히스토그램, 상자그림, 산점도) (0) | 2025.09.17 |
| [R 프로그래밍 기초] | 4.R에서 NA, NaN, Inf 차이 및 처리 방법 (데이터 전처리 필수 개념) (0) | 2025.09.17 |
| [R 프로그래밍 기초] | 2. R 데이터 타입 완벽 정리 + mode, class, typeof까지 (0) | 2025.09.15 |
| [R 프로그래밍 기초] | 1. 꼭 알아야 할 기본 연산 6가지 정리 (2) | 2025.09.14 |