더북(TheBook)

또한, ‘-색인’ 형태로 음의 색인을 사용해 특정 요소만 제외할 수도 있다.

> x <- c("a", "b", "c")
> x[-1]
[1] "b" "c"
> x[-2]
[1] "a" "c"

위의 코드에서 x[-1]은 제일 첫 번째 요소인 “a”를 제외한 경우고, x[-2]는 두 번째 요소인 “b”를 제외한 경우다.

여러 위치에 저장된 값을 한 번에 가져오려면 ‘벡터명[색인 벡터]’ 형식을 사용한다.

> x <- c("a", "b", "c")
> x[c(1, 2)]
[1] "a" "b"
> x[c(1, 3)]
[1] "a" "c"

‘start:end’ 형태의 문법은 start부터 end까지의 숫자를 저장한 숫자 벡터를 뜻한다. 따라서 x[start:end]를 사용해 start부터 end까지의 데이터(start와 end에 위치한 요소 포함)를 볼 수 있다.

> x <- c("a", "b", "c")
> x[1:2]
[1] "a" "b"
> x[1:3]
[1] "a" "b" "c"

벡터의 각 셀에 names( )를 사용해 이름을 부여했다면, 이 이름을 사용해 데이터를 접근할 수 있다.

> x <- c(1, 3, 4)
> names (x) <- c("kim", "seo", "park")
> x
kim seo park
1 3 4
> x["seo"]
seo
3
> x[c("seo", "park")]
seo park
3 4

벡터에 부여된 이름만 보려면 이름을 부여할 때와 마찬가지로 names( )를 사용한다. 다음은 벡터의 두 번째 요소에 부여한 이름이 “seo”임을 보여준다.

> names(x) [2]
[1] "seo"

벡터의 길이는 length( ) 또는 NROW( )를 통해 알 수 있다(NROW( )가 대문자임에 주의하기 바란다). 본래 nrow( )는 뒤에서 설명할 행렬과 데이터 프레임의 행의 수를 알려주는 함수지만, nrow( )의 변형인 NROW( )는 인자가 벡터인 경우 벡터를 n행 1열의 행렬로 취급해 길이를 반환한다. 따라서 데이터 타입에 무관하게 길이를 알고 싶은 경우 length( ), nrow( ), NROW( )의 구분 없이 항상 NROW( )만 사용하면 대부분 문제없이 동작한다.

다음 코드는 세 가지 함수의 사용 예를 보여준다. 코드에서 ‘#’ 기호는 주석을 뜻하므로 # 뒤에 오는 문자열은 코드 실행 시 무시된다.

> x <- c("a", "b", "c")
> length(x)
[1] 3
> nrow(x)  # nrow()는 행렬만 가능
NULL
> NROW(x)  # NROW()는 벡터와 행렬 모두 사용 가능
[1] 3
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.