Как использовать функции sub() и gsub() в R

Введение

Функции sub() и gsub() в R заменяют строку или символы в векторе или фрейме данных на определенную строку. Эти функции полезны при внесении изменений в большие наборы данных.

В этой статье вы узнаете, как использовать функции sub() и gsub() в R.

Предварительные требования

Для завершения этого руководства вам понадобится:

  • R installed locally or on a server.

Синтаксис sub() и gsub()

Базовый синтаксис sub() выглядит так:

sub(pattern, replacement, x)

Базовый синтаксис gsub() выглядит так:

gsub(pattern, replacement, x)

Синтаксис sub() и gsub() включает в себя шаблон, замену и вектор или фрейм данных:

  • шаблон: Шаблон или строка, которую вы хотите заменить.
  • замена: Строка для замены шаблона.
  • x: A vector or a data frame to substitute the strings.

Шаблон может быть также в форме регулярного выражения (regex).

Теперь, когда вы знакомы с синтаксисом, вы можете перейти к реализации.

Функция sub() в R

Функция sub() в R заменяет строку в векторе или фрейме данных вводом или указанной строкой.

Однако ограничение функции sub() заключается в том, что она заменяет только первое вхождение.

1. Использование функции sub()

В этом примере вы узнаете, как заменить строковый шаблон на строку замены с помощью функции sub().

# входной вектор 
df<-"R is an open-source programming language widely used for data analysis and statistical computing."

# замена
sub('R','The R language',df)

Запуск этой команды генерирует следующий вывод:

Output
"The R language is an open-source programming language widely used for data analysis and statistical computing."

Функция sub() заменяет строку 'R' в векторе строкой 'The R language'.

В этом примере было обнаружено только одно совпадение шаблона. Подумайте, что произойдет, если есть несколько совпадений шаблонов.

# входной вектор
df<-"In this tutorial, we will install R and show how to add packages from the official Comprehensive R Archive Network (CRAN)."

# замена
sub('R','The R language',df)

Запуск этой команды генерирует следующий вывод:

"In this tutorial, we will install The R language and show how to add packages from the official Comprehensive R Archive Network (CRAN)."

В этом примере вы можете наблюдать, что функция sub() заменяет первое вхождение строки 'R' на 'The R language'. Но следующее вхождение в строке остается неизменным.

2. Использование функции sub() с фреймом данных

Функция sub() также работает с фреймами данных.

# создание фрейма данных
df<-data.frame(Creature=c('Starfish','Blue Crab','Bluefin Tuna','Blue Shark','Blue Whale'),Population=c(5,6,4,2,2))

# фрейм данных
df

Это создаст следующий фрейм данных:

      Creature Population
1     Starfish          5
2    Blue Crab          6
3 Bluefin Tuna          4
4   Blue Shark          2
5   Blue Whale          2

Затем замените символы 'Blue' на символы 'Green':

# замена значений
sub('Blue','Green',df)

Запуск этой команды генерирует следующий вывод:

Output
"c(\"Starfish\", \"Green Crab\", \"Bluefin Tuna\", \"Blue Shark\", \"Blue Whale\")" "c(5, 6, 4, 2, 2)"

Вы также можете указать конкретный столбец, чтобы заменить все вхождения 'Blue' на 'Green':

# замена значений
sub('Blue','Green',df$Creature)

Запуск этой команды генерирует следующий вывод:

Output
"Starfish" "Green Crab" "Greenfin Tuna" "Green Shark" "Green Whale"

Все вхождения символов 'Blue' были заменены на 'Green'.

Функция gsub() в R

Функция gsub() в R используется для операций замены. Функция принимает входные данные и заменяет их на указанные значения.

В отличие от функции sub(), gsub() применяет глобальную замену ко всем совпадениям.

1. Использование функции gsub()

В этом примере вы узнаете, как заменить строковый шаблон строкой замены с использованием функции gsub().

# входной вектор
df<-"In this tutorial, we will install R and show how to add packages from the official Comprehensive R Archive Network (CRAN)."

Это данные, в которых множество раз написано 'R'.

# замена значений с использованием gsub()
gsub('R','The R language',df)
Output
"In this tutorial, we will install The R language and show how to add packages from the official Comprehensive The R language Archive Network (CThe R languageAN)."

Все вхождения ‘R’ были заменены (включая вхождения в "Comprehensive R Archive Network" и "CRAN"). Функция gsub() находит каждое слово, соответствующее параметру, и заменяет его на входное слово или значения.

2. Использование функции gsub() с данными в виде таблицы

Функция gsub() также работает с данными в виде таблицы.

# создание таблицы данных
df<-data.frame(Creature=c('Starfish','Blue Crab','Bluefin Tuna','Blue Shark','Blue Whale'),Population=c(5,6,4,2,2))

Добавим префикс к значениям в столбце Creature с использованием 'Deep Sea ':

# замена значений
gsub('.*^','Deep Sea ',df$Creature)

Запустив эту команду, вы получите следующий вывод:

Output
"Deep Sea Starfish" "Deep Sea Blue Crab" "Deep Sea Bluefin Tuna" "Deep Sea Blue Shark" "Deep Sea Blue Whale"

В этом примере функция gsub() использует регулярное выражение (regex): .*^. Этот шаблон соответствует позиции в начале строки.

Заключение

В этой статье вы изучили, как использовать функции sub() и gsub() в R. Эти функции заменяют строку или символы в векторе или таблице данных определенной строкой. Функция sub() применяется только к первому совпадению. Функция gsub() применяется ко всем совпадениям.

Продолжайте обучение с Как использовать функцию replace() в R.

Source:
https://www.digitalocean.com/community/tutorials/sub-and-gsub-function-r