如何在R中使用sub()和gsub()

介绍

R 中的 sub()gsub() 函数将会用指定的字符串替换向量或数据框中的字符串或字符。在处理大型数据集时,这些函数非常有用。

在本文中,您将了解如何在 R 中使用 sub()gsub() 函数。

先决条件

完成本教程,您需要:

  • 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)。

现在您已经熟悉了语法,可以开始实现了。

R中的sub()函数

R中的sub()函数用输入或指定的字符串替换向量数据框中的字符串。

但是,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()函数用'The R language'替换了字符串'R'的第一次出现。但字符串中的下一次出现仍然保持不变。

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

然后,用'Green'替换字符'Blue'

# 替换值
sub('Blue','Green',df)

运行此命令将生成以下输出:

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

您还可以指定要替换所有'Blue'出现的特定列:

# 替换值
sub('Blue','Green',df$Creature)

运行此命令将生成以下输出:

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

所有字符'Blue'的实例都已替换为'Green'

R中的gsub()函数

R中的gsub()函数用于替换操作。该函数接受输入并针对指定值进行替换。

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):.*^。这是一个用于匹配字符串开头位置的模式。

结论

在本文中,您了解了如何在 R 中使用 sub()gsub() 函数。这些函数可以用特定字符串替换向量或数据框中的字符串或字符。sub() 函数用于第一个匹配项,gsub() 函数用于所有匹配项。

继续学习,请参阅 如何在 R 中使用 replace()

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