Menu
CoddyTech

벡터 슬라이싱과 인덱싱

Coddy R 여정의 기초 섹션에 포함된 레슨. 78개 중 67번째.

단일 요소에 액세스하고 벡터를 순회하는 방법을 배웠습니다. 이제 슬라이싱을 사용하여 한 번에 여러 요소를 추출하는 방법을 살펴보겠습니다. 이 기법을 사용하면 한 번의 연산으로 벡터의 일부를 가져올 수 있습니다.

여러 요소를 추출하려면 대괄호 안에 인덱스 벡터를 전달하세요:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[c(1, 3, 5)])

출력:

[1] 10 30 50

콜론 연산자를 사용하여 연속된 요소의 범위를 선택할 수도 있습니다:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[2:4])

출력:

[1] 20 30 40

음수 인덱스는 R에서 강력합니다. 음수 인덱스는 요소를 선택하는 대신 제외합니다:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[-2])

출력:

[1] 10 30 40 50

음수 인덱스의 벡터를 전달하여 여러 요소를 제외할 수 있습니다:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[-c(1, 5)])

출력:

[1] 20 30 40

기억하세요. 같은 선택에서 양수 인덱스와 음수 인덱스를 섞을 수 없습니다. numbers[c(1, -2)]를 시도하면 R에서 오류가 발생합니다.

challenge icon

챌린지

쉬움

입력은 두 줄로 주어집니다:

  1. 쉼표로 구분된 숫자 목록(예: 100,200,300,400,500,600,700)
  2. 제외할 범위를 나타내는 쉼표로 구분된 두 인덱스(예: 2,5)

시작 코드는 이미 입력을 읽고 숫자 벡터를 생성합니다. 다음 네 줄을 정확히 이 순서대로 출력하세요:

  1. 인덱스 벡터를 사용하여 위치 1, 3, 5의 요소를 출력합니다
  2. 콜론 연산자를 사용하여 위치 2부터 위치 4까지의 요소를 출력합니다
  3. 첫 번째로 주어진 인덱스의 요소를 제외한 벡터를 출력합니다(음수 인덱싱 사용)
  4. 첫 번째 인덱스부터 두 번째 인덱스까지의 요소를 제외한 벡터를 출력합니다(범위와 음수 인덱싱 사용)

예를 들어 입력이 다음과 같다면:

10,20,30,40,50,60,70
3,5

출력은 다음과 같아야 합니다:

[1] 10 30 50
[1] 20 30 40
[1] 10 20 40 50 60 70
[1] 10 20 60 70

설명:

  • 위치 1, 3, 5의 요소는 10, 30, 50입니다
  • 위치 2부터 4까지의 요소는 20, 30, 40입니다
  • 위치 3을 제외하면 10, 20, 40, 50, 60, 70이 됩니다
  • 위치 3부터 5까지를 제외하면 10, 20, 60, 70이 됩니다

직접 해보기

# 입력 읽기
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
indices_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# 쉼표로 구분된 숫자를 숫자 벡터로 파싱
numbers <- as.numeric(strsplit(numbers_input, ",")[[1]])

# 두 인덱스를 파싱
indices <- as.numeric(strsplit(indices_input, ",")[[1]])
idx1 <- indices[1]
idx2 <- indices[2]

# TODO: 아래에 코드를 작성하세요
# 1. 인덱스 벡터를 사용하여 위치 1, 3, 5의 요소 출력

# 2. 콜론 연산자를 사용하여 위치 2부터 위치 4까지의 요소 출력

# 3. idx1 위치의 요소를 제외한 벡터 출력 (음수 인덱싱)

# 4. idx1부터 idx2까지의 요소를 제외한 벡터 출력 (범위를 사용한 음수 인덱싱)
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 R 컴파일러