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 |
댓글