grepl을 사용하여 R 문자형 벡터의 모든 문자 스트링에 대한 일치 항목 찾기

Jinku Hu 2023년1월30일
  1. grep또는grepl함수를 사용하여 R에서 패턴 일치 검색
  2. grepl을 사용하여 R 문자형 벡터의 모든 문자 스트링 일치
grepl을 사용하여 R 문자형 벡터의 모든 문자 스트링에 대한 일치 항목 찾기

이 기사에서는grepl을 사용하여 R 문자형 벡터의 모든 문자열에 대한 일치 항목을 찾는 몇 가지 방법에 대해 설명합니다.

grep또는grepl함수를 사용하여 R에서 패턴 일치 검색

grep은 문자형 벡터에서 패턴 일치에 사용됩니다. 그에 따라 함수에 의해 일치되는 정규식으로 패턴 인수를 사용합니다. ‘grep’은 기본적으로 일치하는 요소에 대한 인덱스 벡터를 반환하지만 사용자가 ‘값’매개 변수에 ‘TRUE’를 할당하면 일치하는 요소의 문자형 벡터를 반환 할 수도 있습니다. 반면에grepl은 해당 요소가 패턴과 일치하는지 여부를 나타내는 부울 값 벡터를 반환합니다. 다음 예제는 알파벳 문자와 일치하는 알파벳 문자를 보여 주며 예상대로 모든 요소 일치 결과를 얻습니다.

grep("[a-z]", letters)
grep("[a-z]", letters, value = TRUE)
grepl("[a-z]", letters)
> grep("[a-z]", letters)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

> grep("[a-z]", letters, value = TRUE)
 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v"
[23] "w" "x" "y" "z"

> grepl("[a-z]", letters)
 [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[18] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

grepl을 사용하여 R 문자형 벡터의 모든 문자 스트링 일치

grepl함수는 해당 패턴과 함께 제공된 문자열의 모든 논리적 순열과 일치 할 수 있습니다. grepl은 기본적으로 다른 대소 문자와 일치하지 않습니다. 다음 코드 스 니펫은The가있는 모든 문자열과 일치하는 첫 번째 함수를 보여줍니다. 반면에grepl에 대한 다음 호출은The또는the를 포함하는 단어와 일치합니다.

words <- c("The", "licenses", "for", "most", "software", "are",
         "to", "share", "and", "change", "it.",
         "", "By", "contrast,", "the", "GNU", "General", "Public", "License",
         "free", "for", "all", "its", "users")

i <- grepl("The", words)
i
i <- grepl("The|the", words)
i
[1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[15] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

[1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[15]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

또는if...else함수를 사용하여 다음 코드 샘플과 같이 문자형 벡터에서 일치하거나 일치하지 않는 각 요소에 대한 문자열 값을 인쇄 할 수 있습니다. 두 번째 호출은e-h범위의 문자를 포함하는 문자열과의 일치를 사용합니다.

words <- c("The", "Them", "for", "most", "software", "are",
         "to", "share", "and", "change", "it.",
         "", "By", "contrast,", "the", "GNU", "General", "Public", "License",
         "free", "for", "all", "its", "users")

i <- ifelse(grepl("The|the", words), "Tr", "Fa")
i <- ifelse(grepl("[e-h]", words), "Tr", "Fa")
i
[1] "Tr" "Tr" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Tr" "Fa" "Fa"
[18] "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa"

[1] "Tr" "Tr" "Tr" "Fa" "Tr" "Tr" "Fa" "Tr" "Fa" "Tr" "Fa" "Fa" "Fa" "Fa" "Tr" "Fa" "Tr"
[18] "Fa" "Tr" "Tr" "Tr" "Fa" "Fa" "Tr"
작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

관련 문장 - R Regex