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] "'"
x <- c("\"", "\\", '\'')
writeLines(x)
"
\
'
# 백슬레쉬가 포함된 문자열
x <- "abc\n\tabc"

# \n: Enter
# \t: tab 문자를 표현

writeLines(x)
abc
    abc
# 특수문자 표현
x <- "\u00b5" # 그리스 문자 mu 표현 (유니코드)
x
[1] "µ"

참고자료