在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)
运行这个命令将生成以下输出。
“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)
运行这个命令会产生以下输出:
“c(\”Starfish\”, \”Green Crab\”, \”Bluefin Tuna\”, \”Blue Shark\”, \”Blue Whale\”)” “c(5, 6, 4, 2, 2)”
您还可以指定一个特定的列,将所有的’蓝色’替换为’绿色’。
# substituting the values
sub('Blue','Green',df$Creature)
运行这个命令会生成以下输出:
“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)
“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)
运行这个命令会产生下面的输出:
“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()功能。