3 문자열 처리와 정규표현식
학습 목표
- R에서 기본으로 제공하는 문자열 차리 함수에 대해 알아본다
- 텍스트 문자 처리에 있어 유용한 정규 표현식(regular rexpression)에 대해 알아본다.
학습 필요성
실제 데이터는 다양한 형태의 텍스트(문자열)을 포함
R에서 문자열을 이용한 반복 계산 가능
대규모 텍스트 데이터(웹문서, 블로그, SNS, 뉴스, 논문, 상품평, …) 로부터 새로운 정보 및 지식을 도출하기 위한 텍스트 처리에 대한 기본적 이해
여러 문자열로 이루어진 방대한 텍스트 벡터에서 특정 패턴을 갖고 있는 구문을 선별해야 할 경우, 패턴을 도식화 할 수 있는 논리적 표현 필요 \(\rightarrow\) 정규 표현식
정규 표현식을 활용하는 주요 문자열 처리 함수
grep()
,grepl()
: 문자형 벡터에서 정규 표현식 또는 문자 패턴의 일치를 검색.
grep()
: 일치하는 특정 문자열을 포함하는 문자형 벡터 또는 인덱스를 반환grepl()
: 문자열 포함 여부에 대한 논리값 반환
regexpr()
,gregexpr()
: 문자형 벡터에서 정규 표현식 또는 문자열 패턴과 일치하는 원소를 검색하고, 일치가 시작되는 문자열의 인덱스와 일치 길이를 반환
sub()
,gsub()
: 문자열 벡터에서 정규 표현식 또는 문자열 패턴과 일치하는 원소를 검색하고 해당 문자열을 다른 문자열로 변경
regexec()
:regexpr()
와 동일하게 일치가 시작되는 문자열의 인덱스를 반환하지만 괄호로 묶인 하위 표현식의 위치를 추가로 반환
문자열 처리를 위해 정규표현식을 활용하는 함수의 종류는 매우 다양하지만, 본 강의에서는 일부만 소개
문자열 기초
- 탈출 지시자(escape indicator):
\
- 키보드로 입력할 수 없는 문자를 입력하기 위해 사용
- 문자열에 백슬래쉬
\
를 입력하려면\\
로 표시
# 문자열에 따옴표(single of double quote, ', ") 입력
<- "\""
double_quote double_quote
[1] "\""
<- '\''
single_quote single_quote
[1] "'"
<- c("\"", "\\", '\'')
x writeLines(x)
"
\
'
# 백슬레쉬가 포함된 문자열
<- "abc\n\tabc"
x
# \n: Enter
# \t: tab 문자를 표현
writeLines(x)
abc
abc
# 특수문자 표현
<- "\u00b5" # 그리스 문자 mu 표현 (유니코드)
x x
[1] "µ"
참고자료
- Youtube 동영상: 영어 강의가 옥의 티…
- regexr.com: 정규 표현식의 패턴 확인 가능
- Wikibooks R programming: Text processing