R에서 특정 문자 사이의 문자열을 추출하는 방법


다음 방법을 사용하여 R의 특정 문자 사이의 문자열을 추출할 수 있습니다.

방법 1: Base R을 사용하여 특정 문자 사이의 문자열 추출

 gsub(" .*char1 (.+) char2.*", "\\1 ", my_string)

방법 2: stringr을 사용하여 특정 문자 사이의 문자열 추출

 library (stringr)

str_match(my_string, " char1\\s*(.*?)\\s*char2 ")[,2]

이 두 예제는 char1char2 사이의 문자열을 my_string 으로 추출합니다.

다음 예에서는 다음 데이터 프레임을 사용하여 실제로 각 메서드를 사용하는 방법을 보여줍니다.

 #create data frame
df <- data. frame (team=c('team Mavs pro', 'team Heat pro', 'team Nets pro'),
                 dots=c(114, 135, 119))

#view data frame
df

           team points
1 Mavs pro team 114
2 team Heat pro 135
3 pro Nets team 119

예시 1: Base R을 사용하여 특정 문자 사이의 문자열 추출

다음 코드는 데이터 프레임의 열에 있는 각 행에 대해 프로 문자 사이의 문자열을 추출하는 방법을 보여줍니다.

 #create new column that extracts string between team and pro
df$team_name <- gsub(" .*team (.+) pro.*", "\\1 ", df$team)

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

team_name 이라는 새 열에는 데이터 프레임의 열에 있는 각 행의 프로 문자 사이의 문자열이 포함되어 있습니다.

관련 : R의 gsub() 소개

예시 2: stringr 패키지를 사용하여 특정 문자 사이의 문자열 추출

다음 코드는 R에서 stringr 패키지의 str_match() 함수를 사용하여 데이터 프레임의 열에 있는 각 행에 대해 프로 문자 사이의 문자열을 추출하는 방법을 보여줍니다.

 library (stringr)

#create new column that extracts string between team and pro
df$team_name <- str_match(df$team, " team\\s*(.*?)\\s*pro ")[,2]

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

team_name 이라는 새 열에는 데이터 프레임의 열에 있는 각 행의 프로 문자 사이의 문자열이 포함되어 있습니다.

이는 기본 R에서 gsub() 함수를 사용한 결과에 해당합니다.

str_match() 함수는 첫 번째 열에 원래 문자열이 포함되고 두 번째 열에 관심 있는 하위 문자열이 포함된 행렬을 반환합니다.

따라서 str_match() 함수에 의해 반환된 행렬에서 두 번째 열만 추출하려면 [,2] 를 사용해야 합니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 특정 문자열이 포함된 열을 선택하는 방법
R의 문자열에서 문자를 제거하는 방법
R의 문자열에서 문자 위치를 찾는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다