R에서 gsub()를 사용하여 여러 템플릿을 바꾸는 방법


R의 gsub() 함수는 R의 문자열에서 특정 패턴의 모든 발생을 바꾸는 데 사용할 수 있습니다.

한 번에 여러 모델을 교체하려면 중첩된 gsub() 문을 사용할 수 있습니다.

 df$col1 <- gsub(' old1 ', ' new1 ',
           gsub(' old2 ', ' new2 ',
           gsub(' old3 ', ' new3 ', df$col1)))

그러나 훨씬 더 빠른 방법은 다음 구문을 사용하는 stringi 패키지의 stri_replace_all_regex() 함수입니다.

 library (stringi)

df$col1 <- stri_replace_all_regex(df$col1,
                                  pattern=c(' old1 ', ' old2 ', ' old3 '),
                                  replacement=c(' new1 ', ' new2 ', ' new3 '),
                                  vectorize= FALSE )

다음 예에서는 각 방법을 실제로 사용하는 방법을 보여줍니다.

방법 1: 여러 템플릿을 중첩된 gsub()로 교체

R에 다음과 같은 데이터 프레임이 있다고 가정합니다.

 #create data frame
df <- data. frame (name=c('A', 'B', 'B', 'C', 'D', 'D'),
                 dots=c(24, 26, 28, 14, 19, 12))

#view data frame
df

  name points
1 to 24
2 B 26
3 B 28
4 C 14
5 D 19
6 D 12

중첩된 gsub() 문을 사용하여 이름 열의 여러 패턴을 바꿀 수 있습니다.

 #replace multiple patterns in name column
df$name <- gsub(' A ', ' Andy ',
           gsub(' B ', ' Bob ',
           gsub(' C ', ' Chad ', df$name)))

#view updated data frame
df

  name points
1Andy 24
2 Bob 26
3 Bob 28
4 Chad 14
5 D 19
6 D 12

이름 열의 A, B, C가 모두 새 값으로 대체되었습니다.

방법 2: 여러 모델을 stringi로 교체

여러 패턴을 바꾸는 훨씬 빠른 방법은 stringi 패키지의 stri_replace_all_regex() 함수를 사용하는 것입니다.

다음 코드는 이 함수를 사용하는 방법을 보여줍니다.

 library (stringi)

#replace multiple patterns in name column
df$name <- stri_replace_all_regex(df$name,
                                  pattern=c(' A ', ' B ', ' C '),
                                  replacement=c(' Andy ', ' Bob ', ' Chad '),
                                  vectorize= FALSE )

#view updated data frame
df

  name points
1Andy 24
2 Bob 26
3 Bob 28
4 Chad 14
5 D 19
6 D 12

결과 데이터 프레임은 이전 예제의 데이터 프레임과 일치합니다.

데이터 프레임이 적당히 크면 이 함수가 gsub() 함수보다 훨씬 빠르다는 것을 알 수 있습니다.

추가 리소스

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

R에서 replacement() 함수를 사용하는 방법
R 데이터 프레임의 값을 조건부로 바꾸는 방법

의견을 추가하다

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