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

[R] 문자열(string) 다루기 #1 함수 grep(), grepl()

by research_notes 2023. 1. 31.
728x90
반응형

 

1. grep() & grepl(): 텍스트 검색

- grep()과 grepl() 함수를 사용하여 특정 텍스트를 검색할 수 있음.  

 

1) 텍스트 검색

food_list <-c("pizza", "sausage", "hotdog", "PIZZA", "ramen")
grep("pizza", food_list)
[1] 1 # "pizza"를 포함하고 있는 리스트의 인덱스 출력

food_list <-c("pizza", "sausage", "hotdog", "PIZZA", "ramen", "spicy_ramen")
grep("ramen", food_list)
[1] 5 6 # "spicy_ramen"에도 "ramen"이 포함되어 있음!

2) 대소문자 구분 없이 검색

food_list <-c("pizza", "sausage", "hotdog", "PIZZA", "ramen")
grep("pizza", food_list, ignore.case = TRUE)
[1] 1 4

3) 텍스트 수 지정하기

- 찾고자 하는 텍스트 앞 혹은 뒤에 "."을 원하는 글자 수만큼 입력하여 검색 가능.

food_list <-c("pizza", "sausage", "hotdog", "PIZZA", "ramen", "spicy_ramen")
grep(".i...", food_list, ignore.case = TRUE)
[1] 1 4 6

 

4) 시작과 끝 텍스트 찾기

- 특정 string으로 시작하는 텍스트를 찾기 위해서는 "^"를 사용.

food_list <-c("pizza", "sausage", "hotdog", "PIZZA", "ramen", "spicy_ramen")
grep("^s", food_list)
[1] 2 6

- 특정 string으로 끝나는 텍스트를 찾기 위해서는 "$"를 사용.

food_list <-c("pizza", "sausage", "hotdog", "PIZZA", "ramen", "spicy_ramen")
grep("a$", food_list) # "a"로 끝나는 텍스트 찾기
[1] 1

food_list <-c("pizza", "sausage", "hotdog", "PIZZA", "ramen", "spicy_ramen")
grep("a$", food_list, ignore.case = TRUE)
[1] 1 4

 

5) 숫자/문자 찾기

- "\\d" ==>  숫자 찾기

- "\\D" ==>  문자 찾기 

food_list <-c("pizza", "sausage1", "hotdog", "PIZZA9", "ramen", "spicy_ramen")
grep("\\d", food_list, ignore.case = TRUE) #숫자가 포함되어 있는 텍스트 찾기
[1] 2 4

food_list <-c("pizza", "sausage1", "hotdog", "PIZZA9", "ramen", "spicy_ramen","119")
> grep("\\D", food_list, ignore.case = TRUE)
[1] 1 2 3 4 5 6 #문자가 포함되지 않은 "119"를 제외한 모든 인덱스 출력

 

6) grep() vs grepl()

- grepl()은 grep() 함수와 거의 비슷하지만, 조건에 충족하는 리스트의 인덱스를 출력하는 grep()과 다르게 grepl()은 논리값(TRUE, FALSE)을 출력함.

food_list <-c("pizza", "sausage", "hotdog", "PIZZA", "ramen", "spicy_ramen")
grepl("a$", food_list, ignore.case = TRUE)
[1]  TRUE FALSE FALSE  TRUE FALSE FALSE

2023.02.03 - [프로그래밍/R] - [R] 문자열(string) 다루기 #2 함수 nchar(), toupper(), tolower(), strsplit(), paste()

 

[R] 문자열(string) 다루기 #2 함수 nchar(), toupper(), tolower(), strsplit(), paste()

1. nchar(): 문자형 벡터의 문자수 찾기 hello

kimtutor.tistory.com

 

 

 

 

 

728x90
반응형