11.3 문자 벡터의 분할

패턴 찾기 및 패턴 대체 연산 외에도 패턴을 기반으로 문자열을 분할하는 또 다른 일반적인 작업이 있다.

이를 위해 R에는 strsplit() 함수가 있다.

이 함수는 정규 표현식의 일치에 따라 문자형 벡터의 요소를 하위 문자열로 분할하도록 설계되었다.

도움말 문서(help (strsplit))를 확인하면 strsplit() 함수의 기본적인 사용에 두 가지 주요 인수가 필요하다는 것을 알 수 있다.

`strsplit(x, split)`

x는 문자형 벡터이고 split은 정규 표현식 패턴이다.

그러나 다른 grep() 함수에서 사용했던 것과 같은 표기법을 유지하려면 xtext로 그리고 patternsplit으로 생각하는 것이 좋다.

이런 식으로 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"