温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

R语言常见的字符串处理方法有哪些

发布时间:2022-03-05 15:08:43 来源:亿速云 阅读:152 作者:iii 栏目:开发技术

本篇内容介绍了“R语言常见的字符串处理方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

R语言中常见的基本字符串处理,涉及匹配、替换、分割、截取、大小写转换等等

A =c("abcdgegh")
B = c("abcdgegh","deghgabcd")

匹配

grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE,
     fixed = FALSE, useBytes = FALSE, invert = FALSE)
grepl(pattern, x, ignore.case = FALSE, perl = FALSE,
      fixed = FALSE, useBytes = FALSE)
##ignore.case 决定匹配是否对大小写敏感,为了达到精确匹配,默认为对大小写敏感;你完全可以设置不敏感

grep()返回匹配结果,其中invert设定返回匹配或者未匹配上的字符串,grepl()返回逻辑值,例如:

> grep("ab",A)
[1] 1
> grep("ab",B,value=T)
[1] "abcdgegh"  "deghgabcd"
> grep("de",B,invert=F,value=T)
[1] "deghgabcd"
> grep("de",B,invert=T,value=T)
[1] "abcdgegh"
##grepl字符串起始匹配也可以用"^"锚定
> grepl("ab",A)
[1] TRUE
> grepl("ab",B)
[1] TRUE TRUE

匹配替换

sub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,
    fixed = FALSE, useBytes = FALSE)
gsub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,
     fixed = FALSE, useBytes = FALSE)
chartr(old, new, x)

sub()、gsub()、chartr()可以返回替换之后的结果

> sub("ab","AB",B)
[1] "ABcdgegh"  "deghgABcd"
> gsub("ab","AB",B)
[1] "ABcdgegh"  "deghgABcd"
> chartr("a","A",B)
[1] "Abcdgegh"  "deghgAbcd"

分割、拆分、截取

strsplit(x, split, fixed = FALSE, perl = FALSE, useBytes = FALSE)
substr(x, start, stop)
substring(text, first, last = 1000000L)

例如:

> strsplit(A,"d")
[[1]]
[1] "abc"  "gegh"
> unlist(strsplit(A,"d"))
[1] "abc"  "gegh"
> substr(A,1,3)
[1] "abc"
> substr(B,1,3)
[1] "abc" "deg"
> substring(A,1,last=4)
[1] "abcd"
> substring(B,1,last=4)
[1] "abcd" "degh"
>

大小写替换

##替换成大写toupper(x)

##替换成小写
tolower(x) 

##根据参数转换大小写
casefold(x,upper=FALSE)

例如:

> toupper(A)
[1] "ABCDGEGH"
> tolower(toupper(A))
[1] "abcdgegh"
> casefold(A,upper=T)
[1] "ABCDGEGH"

此外还有一个针对字符出来的包strngr可以对字符串进行多种操作处理。
package: stringr

“R语言常见的字符串处理方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI