Функцию gsub() в R можно использовать для замены всех вхождений определенного шаблона в строке в R.
Чтобы заменить сразу несколько шаблонов, вы можете использовать вложенный оператор gsub() :
df$col1 <- gsub('old1', 'new1',
gsub('old2', 'new2',
gsub('old3', 'new3', df$col1)))
Однако гораздо более быстрым методом является функция stri_replace_all_regex() из пакета stringi , которая использует следующий синтаксис:
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'),
points=c(24, 26, 28, 14, 19, 12))
#view data frame
df
name points
1 A 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
1 Andy 24
2 Bob 26
3 Bob 28
4 Chad 14
5 D 19
6 D 12
Обратите внимание, что A, B и C в столбце имени заменены новыми значениями.
Способ 2: заменить несколько шаблонов на stringi
Гораздо более быстрый способ заменить несколько шаблонов — использовать функцию stri_replace_all_regex() из пакета stringi .
Следующий код показывает, как использовать эту функцию:
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
1 Andy 24
2 Bob 26
3 Bob 28
4 Chad 14
5 D 19
6 D 12
Обратите внимание, что результирующий фрейм данных совпадает с фреймом из предыдущего примера.
Если ваш фрейм данных даже умеренно велик, вы заметите, что эта функция работает намного быстрее, чем функция gsub() .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в R:
Как использовать функцию replace() в R
Как условно заменить значения в R Data Frame