데이터 분석/R 데이터 처리 & 분석

[R데이터분석] R 특정 문자열을 포함한 변수 선택하기

love R 2020. 7. 12. 04:11
반응형

변수명에서 특정 문자를 포함한 변수를 선택하기 위한 방법에 대해 알아보도록 하겠습니다.

크게 두 가지 방법이 있는데 names 와 grep 함수를 이용한 방법과 dplyr 패키지의 select 함수를 이용하는 방법입니다.

아래와 같은 iris 데이터가 있을 때 "Sepal" 을 포함한 변수를 선택하겠습니다.

 

 

1. grep(문자열패턴, 문자벡터, ...)

grep함수는 문자벡터의 특정 문자열을 찾아 해당 위치의 인덱스를 반환합니다.

value = TRUE 를 추가적인 인자로 입력하면 해당 값을 반환합니다.

> char_test <- c('a','b','c','ab','fc')

# char_test 에서 'a' 를 찾아 반환 -> 첫번째와 네번째 위치에 있음
> grep('a',char_test)    
[1] 1 4

# 첫번째와 네번째 위치에 있는 'a' 와 'ab'를 반환
> grep('a',char_test,value=TRUE)
[1] "a" "ab"

 

grep함수와 names함수를 이용하여 변수를 선택할 수 있습니다.

# iris 데이터의 변수에서 'Sepal'이 포함된 문자를 찾고 iris 데이터에서 변수를 추출합니다.

 

> iris_var <- grep('Sepal',names(iris))
> iris[ ,iris_var]
   Sepal.Length    Sepal.Width
1       5.1                 3.5
2       4.9                 3.0
3       4.7                 3.2

 

 

2. dplyr 패키지  select 함수 이용하기

dplyr패키지의 select 함수는 변수를 선택할 때 씁니다. 이때 특정 contains 인자를 활용하여 변수를 추출할 수 있습니다.

# dplyr 패키지 미설치시
# install.packages("dplyr")
> library(dplyr)
> select(iris, contains('Sepal'))
  Sepal.Length    Sepal.Width
1       5.1                 3.5
2       4.9                 3.0
3       4.7                 3.2

 

특정 패턴이 있는 문자열만 추출하고 싶은 경우, 위와 같은 방법들을 이용해서 추출할 수 있습니다. 문자열을 다루는 방법들은 다음 번에 더 자세하게 다뤄보도록 하겠습니다!

반응형