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