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

介紹

sub()gsub()函數在R中用於替換向量或數據框中的字符串或字符。當處理大型數據集時,這些函數非常有用。

本文將介紹如何在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()函數將字符串'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'

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