介绍
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