반응형
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
반응형
'기본적인프로그래밍 > R' 카테고리의 다른 글
[R] Plot에 expression을 이용하여 특수기호 추가하기! (0) | 2020.11.25 |
---|---|
[R] R에서 시간을 다루기! (시, 분, 초, 요일 가져오기) (0) | 2020.11.02 |
[R] read.table 시에 에러 해결 (0) | 2020.10.07 |
[R] 쉽게 배우는 R programming 기초 (6) (plot 저장, 크기 조절) (3) | 2020.07.14 |
[R] 쉽게 배우는 R programming 기초 (5) (그래프, plot, 기타 parameter) (0) | 2020.06.30 |
댓글