在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()的语法要求一个模式、一个替换和一个向量或数据框。

  • pattern: The pattern or the string which you want to be substituted.
  • replacement: A input string to substitute the pattern string.
  • x: A vector or a data frame to substitute the strings.

这个模式也可以是一个正则表达式(regex)。

既然你对语法已经熟悉了,那你可以继续进行实现了。

R中的sub()函数

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

然而,sub()函数的局限性在于它只替换第一个出现的。

使用sub()函数

在这个例子中,学习如何使用sub()函数用替换字符串替代字符串模式。

# the input vector 
df<-"R is an open-source programming language widely used for data analysis and statistical computing."

# the replacement
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’。

在这个例子中,发生了一次模式匹配。想想如果有多个模式匹配的情况会发生什么。

# the input vector
df<-"In this tutorial, we will install R and show how to add packages from the official Comprehensive R Archive Network (CRAN)."

# the replacement
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语言’。但是字符串中的下一个出现依然保持不变。

使用数据框架中的sub()函数

sub()函数还可以与数据框一起使用。

# creating a data frame
df<-data.frame(Creature=c('Starfish','Blue Crab','Bluefin Tuna','Blue Shark','Blue Whale'),Population=c(5,6,4,2,2))

# data frame
df

这将创建以下数据框架:

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

然后将“蓝色”改为“绿色”的字符。

# substituting the values
sub('Blue','Green',df)

运行这个命令会产生以下输出:

Output

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

您还可以指定一个特定的列,将所有的’蓝色’替换为’绿色’。

# substituting the values
sub('Blue','Green',df$Creature)

运行这个命令会生成以下输出:

Output

“Starfish” “Green Crab” “Greenfin Tuna” “Green Shark” “Green Whale”

所有出现过的字母’B’都已经被替换为’G’。

R中的gsub()函数

在R中,gsub()函数用于替换操作。该函数将输入值替换为指定的值。

与sub()函数不同,gsub()函数会对所有匹配项进行全局替换。

使用gsub()函数。

在这个例子中,学习如何使用gsub()函数将一个字符串模式替换为另一个字符串。

# the input vector
df<-"In this tutorial, we will install R and show how to add packages from the official Comprehensive R Archive Network (CRAN)."

这是一些多次写有’R’的数据。

# substituting the values using 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()函数会找到与参数匹配的每个单词,并用输入的单词或值进行替换。

使用gsub()函数与数据框架操作

gsub()函数也适用于数据框架。

# creating a data frame
df<-data.frame(Creature=c('Starfish','Blue Crab','Bluefin Tuna','Blue Shark','Blue Whale'),Population=c(5,6,4,2,2))

让我们在Creature列中的值前加上“深海”前缀。

# substituting the values
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()功能。

广告
将在 10 秒后关闭
bannerAds