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에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.