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
<- c("R is a collaborative project with many contributors")
sentence
# split into words
strsplit(sentence, " ")
## [[1]]
## [1] "R" "is" "a" "collaborative"
## [5] "project" "with" "many" "contributors"
- 하나의
sentence
문자열이strsplit()
함수에 의해 8 개의 벡터 요소로 분리되었다. - 출력 형식은 list 형식이다.
또 다른 기본적인 예는 전화번호와 같이 대시("-"
)로 연결된 숫자 세트를 부분적으로 분할하는 것이다:
# telephone numbers
<- c("010-548-2##8", "010-2##1-2440", "010-7##2-1300")
tels
# 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"