R에서 텍스트 벡터에서 특정 문자열을 포함한 요소를 찾는 것은 자주 발생하는 작업이다. 이를 위해 stringr
패키지의 str_which()
함수를 사용할 수 있다. 이 글에서는 str_which()
의 사용법과 이를 통해 텍스트 벡터에서 특정 문자열이 포함된 행을 선택하는 방법을 설명한다.
1. str_which()
함수 소개
str_which()
함수는 텍스트 벡터에서 특정 패턴이 포함된 요소의 인덱스를 반환한다. 이를 사용하여 벡터나 데이터프레임에서 원하는 조건을 만족하는 행을 쉽게 선택할 수 있다.
library(stringr)
# 예제 벡터 생성
text_vector <- c("apple", "banana", "cherry", "blueberry", "apricot")
# 'apple'이라는 단어가 포함된 요소의 인덱스를 반환
indices <- str_which(text_vector, "apple")
print(indices)
위 코드에서는 "apple"
이라는 단어가 포함된 요소의 인덱스를 찾아 반환한다. 결과는 [1, 5]
로, 첫 번째와 다섯 번째 요소가 해당 조건을 만족하는 것을 알 수 있다.
2. 데이터프레임에서 행 선택
데이터프레임에서 특정 열에 특정 문자열이 포함된 행을 선택할 때도 str_which()
를 유용하게 사용할 수 있다. 다음은 데이터프레임에서 ‘apple’이 포함된 행을 선택하는 예시다.
# 데이터프레임 생성
df <- data.frame(
ID = 1:5,
Fruit = c("apple", "banana", "cherry", "blueberry", "apricot"),
stringsAsFactors = FALSE
)
# 'apple'이 포함된 행을 선택
apple_rows <- df[str_which(df$Fruit, "apple"), ]
print(apple_rows)
출력 결과는 ‘apple’ 또는 ‘apricot’이 포함된 행을 반환한다.
ID Fruit
1 1 apple
5 5 apricot
3. 복잡한 패턴 매칭
str_which()
는 정규 표현식을 지원하므로 복잡한 패턴 매칭도 가능하다. 예를 들어, ‘a’로 시작하고 ‘e’로 끝나는 단어를 찾는 경우 다음과 같이 작성할 수 있다.
# 'a'로 시작하고 'e'로 끝나는 단어 찾기
pattern_rows <- df[str_which(df$Fruit, "^a.*e$"), ]
print(pattern_rows)
이 경우, ‘apple’이 매칭되어 반환된다.
4. 결론
str_which()
함수는 벡터나 데이터프레임에서 특정 문자열이 포함된 행을 선택할 때 매우 유용하다. 간단한 텍스트 탐색부터 복잡한 패턴 매칭까지 다양하게 활용할 수 있다. stringr
패키지를 활용하면 복잡한 텍스트 처리 작업도 쉽게 수행할 수 있다.
참고: str_which()
함수는 stringr
패키지에 포함되어 있으므로, 사용 전에 stringr
패키지를 설치하고 불러와야 한다.
Leave a comment