프로그래밍/R
[R] 문자열(string) 다루기 #1 함수 grep(), grepl()
research_notes
2023. 1. 31. 00:43
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
728x90
반응형