R - 벡터: 초보자 가이드
안녕하세요, 미래의 R 프로그래머 여러분! 오늘 우리는 R의 벡터 세계로 흥미로운 여정을 떠납니다. 프로그래밍을 전혀 해보지 않았다면 걱정하지 마세요 - 저는 친절한 안내자가 되어, 단계별로 이를 안내해 드리겠습니다. 이 튜토리얼이 끝나면, 당신은 프로처럼 벡터를 생성하고 조작할 수 있을 것입니다!
벡터는 무엇인가요?
들어가기 전에 벡터가 무엇인지 이해해 보겠습니다. R에서 벡터는 동일한 유형의 여러 항목을 담고 있는 컨테이너입니다. 기차를 생각해 보세요. 여러 개의 객차가 같은 종류의 화물을 운반하는 것처럼요. 이 화물은 숫자, 텍스트, 혹은 논리 값(참/거짓)일 수 있습니다.
벡터 생성
벡터를 생성하는 방법을 배워보겠습니다. R에서 벡터를 생성하는 방법은 여러 가지가 있지만, 가장 일반적이고 유용한 방법에 대해 집중해 보겠습니다.
c() 함수 사용
벡터를 생성하는 가장 간단한 방법은 c()
함수를 사용하는 것입니다. 'c'는 'combine' 또는 'concatenate'를 의미합니다.
# 수학 벡터 생성
numbers <- c(1, 2, 3, 4, 5)
print(numbers)
# 문자 벡터 생성
fruits <- c("apple", "banana", "cherry")
print(fruits)
# 논리 벡터 생성
is_student <- c(TRUE, FALSE, TRUE, TRUE)
print(is_student)
이 예제에서 우리는 세 가지 다른 유형의 벡터를 생성하고 있습니다. <-
기호는 벡터를 변수 이름에 할당하는 데 사용됩니다.
: 연산자 사용
숫자 시퀀스를 생성할 때 :
연산자는 매우 유용합니다:
# 1에서 10까지의 시퀀스 생성
sequence <- 1:10
print(sequence)
# 역 시퀀스 생성
reverse_sequence <- 10:1
print(reverse_sequence)
이는 R에게 "이에서 저까지의 모든 숫자를 주세요"라고 말하는 것과 같습니다.
seq() 함수 사용
시퀀스에 대한 더 많은 제어를 원하시면 seq()
함수가 도와드립니다:
# 특정 단계로 시퀀스 생성
by_twos <- seq(from = 0, to = 10, by = 2)
print(by_twos)
# 특정 길이의 시퀀스 생성
five_numbers <- seq(from = 0, to = 1, length.out = 5)
print(five_numbers)
seq()
함수는 더 유연하며, 시작점, 종료점, 단계 크기, 또는 원하는 요소 수를 지정할 수 있습니다.
rep() 함수 사용
때로는 값을 반복하고 싶을 수 있습니다. 그때는 rep()
함수를 사용합니다:
# 단일 값을 반복
repeat_five <- rep(5, times = 3)
print(repeat_five)
# 벡터를 반복
repeat_vector <- rep(c(1, 2), times = 3)
print(repeat_vector)
# 각 요소를 반복
repeat_each <- rep(c(1, 2), each = 3)
print(repeat_each)
rep()
은 패턴을 생성하거나 데이터를 반복된 값으로 채우는 데 유용합니다.
벡터 요소 접근
벡터를 생성한 다음, 요소에 접근하는 방법을 배워보겠습니다. R에서는 꺽쇠 []
를 사용하여 이를 위해 사용합니다.
인덱스로 접근
R에서 인덱싱은 1에서 시작합니다, 다른 프로그래밍 언어와 달리 0에서 시작하지 않습니다.
fruits <- c("apple", "banana", "cherry", "date")
# 첫 번째 요소 접근
print(fruits[1]) # 출력: "apple"
# 세 번째 요소 접근
print(fruits[3]) # 출력: "cherry"
# 여러 요소 접근
print(fruits[c(1, 3)]) # 출력: "apple" "cherry"
# 범위의 요소 접근
print(fruits[2:4]) # 출력: "banana" "cherry" "date"
음수 인덱싱
R에서는 음수 인덱스를 사용하여 요소를 제외할 수 있습니다:
# 두 번째 요소 제외
print(fruits[-2]) # 출력: "apple" "cherry" "date"
# 여러 요소 제외
print(fruits[c(-1, -3)]) # 출력: "banana" "date"
논리 인덱싱
논리 벡터를 사용하여 요소에 접근할 수 있습니다:
numbers <- c(1, 2, 3, 4, 5)
# 짝수 요소 접근
print(numbers[numbers %% 2 == 0]) # 출력: 2 4
# 3보다 큰 요소 접근
print(numbers[numbers > 3]) # 출력: 4 5
벡터 조작
벡터를 생성하고 접근하는 방법을 알고 나서, 이를 조작하는 방법을 배워보겠습니다.
벡터 산술
벡터에 산술 연산을 수행할 수 있습니다:
vec1 <- c(1, 2, 3)
vec2 <- c(4, 5, 6)
# 덧셈
print(vec1 + vec2) # 출력: 5 7 9
# 곱셈
print(vec1 * vec2) # 출력: 4 10 18
# 나눗셈
print(vec2 / vec1) # 출력: 4 2.5 2
벡터 재활용
다른 길이의 벡터를 연산할 때, R은 짧은 벡터를 긴 벡터에 맞게 재활용합니다:
short_vec <- c(1, 2)
long_vec <- c(1, 2, 3, 4, 5, 6)
print(short_vec + long_vec) # 출력: 2 4 4 6 6 8
R은 짧은 벡터를 반복하여 긴 벡터의 길이에 맞춥니다.
벡터 함수
R은 벡터를 처리하는 데 유용한 많은 함수를 제공합니다:
numbers <- c(5, 2, 8, 1, 9)
# 벡터의 길이
print(length(numbers)) # 출력: 5
# 모든 요소의 합
print(sum(numbers)) # 출력: 25
# 벡터의 평균(평균)
print(mean(numbers)) # 출력: 5
# 벡터 정렬
print(sort(numbers)) # 출력: 1 2 5 8 9
다음은 일반 벡터 함수의 요약 표입니다:
함수 | 설명 |
---|---|
length() | 벡터의 요소 수 반환 |
sum() | 모든 요소의 합 계산 |
mean() | 벡터의 평균(평균) 계산 |
median() | 중앙값 찾기 |
max() | 최대값 반환 |
min() | 최소값 반환 |
sort() | 벡터를 오름차순으로 정렬 |
rev() | 요소의 순서를 반전 |
결론
축하합니다! 벡터의 세계로 첫 걸음을 뗐습니다. 우리는 생성, 요소 접근, 기본 조작에 대해 다루었습니다. 연습이 완벽을 만든다는 것을 기억하고, 이 개념들을 실험해 보세요.
벡터는 R에서 데이터 조작의 기본 블록이며, 이를 마스터하면 R 프로그래밍에서 성공할 수 있습니다. 계속 탐구하고, 계속 코딩하고, 가장 중요한 것은 즐기세요!
Credits: Image by storyset