데이터 갖고 놀기/실전 전투 R

gsub_원하는 단어만 찾아바꾸기_R

고물상자 2019. 11. 26. 09:34

R을 뭐 전문적으로 막 쓰는게 아니라 그냥 여지껏 배운것들을 잊어버리지 않기 위해.. 딱.. 
엑셀 정도의 수준으로 유지하고 있는데, 가끔씩 자주 썼지만, 잘 잊어버리는 내용들을 정리하고자 한다. 

비전공자로써 처음보면 익히는것도 싫고, 뭐에 쓰나 싶을 정도로 이상했던 "정규표현식"
당장에 필요가 없고, 필요할때마다 googling을 통해 그때 그때 썼는데.. 이제 "정규표현식"의 필요성을 점차 느끼고 있다.


내가 잘 쓰는 수식중에 하나는 gsub 이다. 
찾아바꾸기... 

df$temp=gsub("변경전","변경후",df$temp)

위의 기능을 썼을때, 일반적일때는 크게 상관이 없지만, 예를 들어 

["사과", "사과나무"] 등의 요소가 있어서 "사과"를 배로 바꾸고자 하면 

df=c("사과","사과나무")
df=gsub("사과","배", df)
df=("배","배나무")

이렇게 변하게 된다. 물론 "사과나무"도 배나무로 바꾸고자 하면 크게 문제가 없지만, "사과"만 "배"로 바꾸려면 어지간한 귀찮음이 발생하게 된다. 

이때  정규표현식이 필요하게 되고, 이에 적합한 정규표현식은 ^, $ 이다. 
^ = 처음시작되는 글자 
$ = 끝나는 글자 
위의 정규식을 통해 원하는 단어만 선별적으로 변경할 수 있다. 

gsub("^변경전$", "변경후", df)

위의 식을 통해 일치하는 단어만 분리해서 변경할 수 있게 된다.