R 데이터 특정 조건을 만족하는 문자 변경하기 feat. gsub
#R #gsub
데이터를 분석하다가 보면 가끔 원하는대로 변수가 설정되어있지 않아서 바꿔줘야 하는 경우가 있다. 그런데 엑셀로 한땀 한땀 바꾸는 것도 오래 걸린다. 이 때 R을 사용하고 있다면 간단한 함수로 조작이 가능하다.
1. R gsub 함수 알아보기
gsub
함수는 기본 R에 내장되어있는 함수 중의 하나이다. 따라서 따로 library를 설치하고 불러올 필요는 없다.
우선 내가 가지고 있는 데이터의 일부는 다음과 같이 생겼다.
보면 categorical variables(범주형 변수?)라서 숫자 옆에 문자가 같이 써져있다. 이렇게 되어있는 경우 회귀분석을 진행할 수가 없어서 문자를 전부 drop시켜줘야한다. 이럴 때 gsub
함수가 유용하다.
gsub
함수는 다음과 같이 사용할 수 있다.
1
2
gsub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE)
pattern
여기에는 내가 바꾸고 싶은 문자열의 패턴(특성)을 적으면 된다. 예를 들어서, x = very good
이라는 변수가 있는데 여기에서 very
가 들어간 부분을 바꾸고 싶으면 pattern
에는 "very"
가 들어가면 된다.
replacement
여기에는 바꿀 문자열을 적으면 된다. 앞선 예시에서 very
를 없애버리고 싶다면 ""
과 같이 공란으로 만들어버리면 된다.
x
여기는 변수를 적으면 된다.
예시
위의 예시에 따라
1
2
x = "very good"
x = gsub("very ", "", x)
라고 실행을 하게 되면 x = "good"
라고 출력이 되는 것을 확인할 수 있다.
2. R gsub 함수 응용하기
그렇다면, 내가 가지고 있는 데이터처럼 숫자. 문자
와 같은 특징을 가지고 있을 때 이를 한꺼번에 정리하는 방법은 없을까? 물론 있다.
1
x = gsub("\\..*","",x)
위와 같이 "\\..*"
를 이용한다면 .
뒤에 있는 모든 문자
까지 ""
공란으로 만들어달라는 뜻이다.
혹은 다르게 응용한다면 [:punct:]
를 이용하면 구두점과 같은 특수문자만을 고를 수도 있다. 본인이 원하는 특정 문자가 존재한다면 구글에 물어보면 stackoverflow에 계시는 귀인들의 답변이 도와줄 것이다.