본문 바로가기
기본적인프로그래밍/R

[R] R에서 특수문자 제거 방법! 혹은 나누는 방법

by 인포메틱스 2020. 10. 13.
반응형

R에서 데이터를 다루다 보면 글자를 나누거나 혹은 제거를 해야하는 경우가 생깁니다.

 

그럴 때! strsplit(), gsub()라는 것을 이용하는데 간단하게 사용방법을 보여주자면

 

다음과 같습니다.

data="Test-Test1-Test2"

strsplit(x = data,split = '-')
# output
#[[1]]
#[1] "Test"  "Test1" "Test2"
gsub(pattern = '-',replacement = '',x = data)
# output
#"TestTest1Test2"

strsplit()의 경우 리스트로 결과를 주며, 여러개의 데이터를 나눠야 할 경우 library(stringr)을 이용하면 됩니다.

 

stringr package에서 str_split_fixed()을 이용해서 진행하면되는데 다음과 같은 예시를 보여주겠습니다.

 

data=c("Test-Test1-Test2","Test3-Test4-Test5","Test6-Test7-Test8")
str_split_fixed(data,pattern = '-',3)

# output
#     [,1]    [,2]    [,3]   
#[1,] "Test"  "Test1" "Test2"
#[2,] "Test3" "Test4" "Test5"
#[3,] "Test6" "Test7" "Test8"

 

그러나 가끔 잘 안먹힐 때가 있는데, 정규표현식들이 포함되는 경우입니다. 정규표현식이 무엇이냐?!

 

 제가 이해한 정규표현식은 프로그래밍 언어마다 다르고 간단한 동작들을 하는 기능(function)이라고 이해를 했습니다. (자세한건 찾아보세요)

 

아무튼, 이러한 정규표현식이 들어간 경우는 pattern이나 split에 잘 안먹히는 경우가 있습니다.

 

그럴 때 사용하는 방법이 "[]", "\\"입니다

 

1. [ ] 사용!

data="Test.Test1.Test"

strsplit(x = data,split = '-')
# output
#[[1]]
#[1] "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

gsub(pattern = '-',replacement = '',x = data)
# output
#[1] ""

# [ ] 사용
data="Test.Test1.Test"

strsplit(x = data,split = '[.]')
# output
#[[1]]
#[1] "Test"  "Test1" "Test" 

gsub(pattern = '[.]',replacement = '',x = data)
# output
#[1] "TestTest1Test"

 

2. \\ 사용 (역슬래쉬)

data="Test.Test1.Test"

strsplit(x = data,split = '\\.')
# output
#[[1]]
#[1] "Test"  "Test1" "Test" 

gsub(pattern = '\\.',replacement = '',x = data)
# output
#[1] "TestTest1Test"

 

 오늘은 글자를 나누거나 제거하는데 정규표현식을 무시하는 방법에 대해서 알아보았습니다.

 

"\\" 가 더 많이 다양하게 사용되고 있으니, "\\" 를 사용하시는 것을 추천드립니다. (python, R, linux)에서도 사용가능합니다.

 


유용하셨거나, 잘 보셧다면 주변 광고 한번씩만 클릭 부탁드립니다! 감사합니다!

728x90
반응형

댓글