직장인 대학원/R

[R] 벡터(Vector)

Binsoo 2025. 4. 18.
728x90
반응형

🧱 벡터란?

  • R에서 같은 종류의 데이터들만 저장할 수 있는 1차원 배열!
  • 숫자든 문자든 논리값이든, 한 번 만들면 같은 타입만 들어간다.
  • c() 함수를 써서 벡터를 생성한다.
x <- c(1, 2.5, 3.2)              # numeric
y <- c(TRUE, FALSE, TRUE)        # logical
z <- c("apple", "banana", "peach") # character

 

🎯 벡터 인덱싱 (벡터 안에서 특정 값 꺼내기)

x[3]           # 세 번째 값 출력
x[c(1, 3)]     # 첫 번째와 세 번째 값 출력
 

[]를 사용해서 원하는 위치의 값을 가져올 수 있어서 너무 편했다.
엑셀처럼 "몇 번째" 느낌으로 쉽게 다룰 수 있음!

 

🏷️ 벡터에 이름 붙이기

fruit <- c(5, 3, 2)
names(fruit) <- c("apple", "orange", "peach")

fruit["apple"]   # apple의 값 가져오기

 

apple orange peach
5 3 2

 

이름을 붙이면 숫자 인덱스 없이도 바로 가져올 수 있어서 가독성 최고!

 

📏 벡터 길이 구하기

length(fruit)  # 벡터에 몇 개 들어있는지
 

🧩 벡터 결합

a <- c(1, 2, 3)
b <- c(5, 6)
x <- c(a, 4, b)         # 기존 벡터들을 이어붙이기
a[7] <- 2               # 없는 자리 채우면 NA + 값 생성됨
 

🧩 벡터 수정

x: 원래의 벡터
99: 삽입할 값
after = 3: x의 3번째 값 뒤에 99를 삽입하겠다는 뜻

x <- c(1, 2, 3, 4, 5)
append(x, 99, after=3)  # 특정 위치에 값 삽입

## 결과 ( 즉, 3 뒤에 99가 들어가서 4와 5는 뒤로 밀린다는 뜻 )
[1] 1 2 3 99 4 5
 
 

🔁 반복과 순차 생성

seq(from=0, to=1, by=0.1)         # 0부터 1까지 0.1 간격
seq(from=0, to=1, length=11)      # 11개의 수로 나눔
rep(1, 10)                        # 1을 10번 반복
 

➕ 벡터끼리 연산도 가능하다!

x <- 1:3
y <- c(2, 2, 2)

x + y   # [1] 3 4 5
x * y   # [1] 2 4 6
x ^ y   # [1] 1 4 9

 

벡터끼리의 연산은 각 원소별로 계산된다.
심지어 길이가 다르면 R이 자동으로 순환해서 계산하기도 한다 (recycling).

 

⚠️ 서로 다른 타입을 넣으면?

c(1.7, "a")       # 모든 값이 character로 바뀜
c(TRUE, 2)        # numeric으로 변환
c("a", TRUE)      # character로 변환

 

📌 우선순위: Logical < Numeric < Character
→ 벡터 안에 타입이 섞이면 자동으로 가장 높은 타입으로 자동 변환된다 (implicit coercion)

 

🛠️ 명시적 변환 (Explicit coercion)

x <- 0:6
as.numeric(x)
as.character(x)
as.logical(x)

 

필요하면 내가 원하는 타입으로 명시적 변환도 가능하다.
근데 문자열을 숫자로 바꾸려다 실패하면 NA가 나온다 😅

 

📊 통계 함수도 벡터에서 바로 사용 가능!

x <- rnorm(10)     # 정규분포를 따르는 10개의 난수
mean(x)            # 평균
sd(x)              # 표준편차
range(x)           # 최댓값/최솟값
summary(x)         # 요약통계
 

 

이 외에도 max, min, sum, prod, var, median, quantile, cor, cov 등
엄청 다양한 함수들을 벡터 하나로 전부 계산할 수 있다는 게 신기했다!

 

📌 오늘의 한줄 요약

R에서 벡터는 정말 모든 것의 기본이다!
자료형도, 수식도, 통계도… 다 벡터로 시작된다! 😎

728x90
반응형

'직장인 대학원 > R' 카테고리의 다른 글

[R] 리스트 (List)  (0) 2025.04.18
[R] 매트릭스 (Matrix)  (0) 2025.04.18
[R] 기본 객체와 자료 형태  (1) 2025.04.18
[R] 산술 연산  (0) 2025.04.18
[R] 변수와 상수  (0) 2025.04.18

댓글