11.3 문자 벡터의 분할
패턴 찾기 및 패턴 대체 연산 외에도 패턴을 기반으로 문자열을 분할하는 또 다른 일반적인 작업이 있다.
이를 위해 R에는 strsplit() 함수가 있다.
이 함수는 정규 표현식의 일치에 따라 문자형 벡터의 요소를 하위 문자열로 분할하도록 설계되었다.
도움말 문서(help (strsplit))를 확인하면 strsplit() 함수의 기본적인 사용에 두 가지 주요 인수가 필요하다는 것을 알 수 있다.
`strsplit(x, split)`
x는 문자형 벡터이고 split은 정규 표현식 패턴이다.
그러나 다른 grep() 함수에서 사용했던 것과 같은 표기법을 유지하려면 x를 text로 그리고 pattern을 split으로 생각하는 것이 좋다.
이런 식으로 strsplit() 함수의 사용법을 다음과 같이 표현할 수 있다:
`strsplit(text, pattern)`
strsplit()을 사용할 수있는 일반적인 작업 중 하나는 문자열을 개별 구성 요소 (예 : 단어)로 나누려는 경우이다.
예를 들어, 주어진 문장 내에서 각 단어를 문자열로 분리하려면 빈 공간 " "을 분할 패턴(split)으로 지정하면된다.
# a sentence
sentence <- c("R is a collaborative project with many contributors")
# split into words
strsplit(sentence, " ")## [[1]]
## [1] "R" "is" "a" "collaborative"
## [5] "project" "with" "many" "contributors"
- 하나의
sentence문자열이strsplit()함수에 의해 8 개의 벡터 요소로 분리되었다. - 출력 형식은 list 형식이다.
또 다른 기본적인 예는 전화번호와 같이 대시("-")로 연결된 숫자 세트를 부분적으로 분할하는 것이다:
# telephone numbers
tels <- c("010-548-2##8", "010-2##1-2440", "010-7##2-1300")
# split each number into its portions
strsplit(tels, "-")## [[1]]
## [1] "010" "548" "2##8"
##
## [[2]]
## [1] "010" "2##1" "2440"
##
## [[3]]
## [1] "010" "7##2" "1300"