2020-10-13 15:27 阅读(9031) 评论(0)

R语言 gsub()函数

摘要: R语言,字符串替换函数,sub函数,gsub函数
R语言 gsub()函数详解与示例
用途:R语言字符串替换函数
语法:
R语言中替换首次出现的字符串:
sub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,fixed = FALSE, useBytes = FALSE)
R语言中替换所有出现的字符串:
gsub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,fixed = FALSE, useBytes = FALSE)

参数说明:
pattern:需要被替换的字符串,例如把a替换成b,则pattern需要输入a;
replacement:用来替换的字符串,例如把a替换成b,则replacement需要输入b;
x:目标字符串/字符向量,也就是需要从这里面来搜索匹配内容。
ignore.case:如果输入FALSE,则模式匹配需要区分大小写;如果输入TRUE,则匹配的时候会忽略大小写。不填时默认是FALSE,即要区分大小写。
perl:逻辑变量。是否应该使用Perl兼容的regexp?不填时默认FALSE。
fixed:逻辑变量。如果输入TRUE,则pattern是一个字符串,将原样匹配,而且会覆盖所有冲突参数。不填时默认FALSE。
useBytes:逻辑变量。如果输入TRUE,则将会逐个字节匹配而不是逐个字符匹配。不填时默认FALSE。

示例:
> sub(pattern = 'a',replacement = 'A',x=c('www.idata8.com','爱数吧idata8')) #替换字符向量的每一个字符串中首次出现的a
[1] "www.idAta8.com" "爱数吧idAta8"  
> gsub(pattern = 'a',replacement = 'A',x=c('www.idata8.com','爱数吧idata8'))#替换字符向量的每一个字符串中所有的a
[1] "www.idAtA8.com" "爱数吧idAtA8"  

实际使用中可以不输入参数名
> sub('a','A',c('www.idata8.com','爱数吧idata8')) #替换字符向量的每一个字符串中首次出现的a
[1] "www.idAta8.com" "爱数吧idAta8" 
> gsub('a','A',c('www.idata8.com','爱数吧idata8'))#替换字符向量的每一个字符串中所有的a
[1] "www.idAtA8.com" "爱数吧idAtA8"  

匹配与替换字符串时是否区分大小写:
> gsub('a','x',c('www.idatA8.com','爱数吧idAta8'),ignore.case=TRUE)#不区分大小写
[1] "www.idxtx8.com" "爱数吧idxtx8"  
> gsub('a','x',c('www.idatA8.com','爱数吧idAta8'),ignore.case=FALSE) #区分大小写
[1] "www.idxtA8.com" "爱数吧idAtx8"

R语言将多个不同字符一次替换成同一个字符:
> gsub('[ia]','X',c('www.idata8.com','爱数吧idata8')) #将i和a都替换成X,'[]'内的字符串会被识别成单个字符替换
[1] "www.XdXtX8.com" "爱数吧XdXtX8"  
> gsub(c('8','id'),'X',c('www.idata8.com','爱数吧idata8')) #需要被替换的内容为字符向量时只有第一个元素会被使用
[1] "www.idataX.com" "爱数吧idataX"  
Warning message:
In gsub(c("8", "id"), "X", c("www.idata8.com", "爱数吧idata8")) :
  argument 'pattern' has length > 1 and only the first element will be used

R语言利用gsub函数替换字符串中的加号
> gsub("+","@","1+2=3") #如果直接数据加号"+",会被识别成字符串中单个字符间的连接字符
[1] "@1@+@2@=@3@"
> gsub("\\+","@","1+2=3") #R语言要替换字符串中的加号,需要用"\\+"
[1] "1@2=3"

补充说明:R语言中替换字符串时sub函数与gsub函数的区别
sub仅替换每个字符串中首次出现的内容,而gsub会替换每个字符串中所有出现的内容。








鲜花

握手

雷人

路过

鸡蛋

最新评论

在线笔记
公众号
微信公众号

爱数吧公众号

意见反馈
返回顶部
返回顶部