前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R中的替换函数gsub

R中的替换函数gsub

作者头像
生信交流平台
发布2022-09-21 18:52:35
3.1K0
发布2022-09-21 18:52:35
举报

R中gsub替换函数的参数如下

代码语言:javascript
复制
gsub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,
    fixed = FALSE, useBytes = FALSE)

其中pattern是要替换的字符,replacement是替换成的字符,x是对应的string或string vector。

string举例如下:

代码语言:javascript
复制
> gsub("ut","ot",x)

ignore.case表示是否忽视大小写。

vector举例如下:

代码语言:javascript
复制
> x <- c("R Tutorial","PHP Tutorial", "HTML Tutorial")
> gsub("Tutorial","Examples",x)
#将Tutorial替换成Examplers

[1] "R Examples"    "PHP Examples"  "HTML Examples"

还有其他的一些例子来灵活使用这个函数,结合正则表达式。

代码语言:javascript
复制
> x <- "line 4322: He is now 25 years old, and weights 130lbs"
> y <- gsub("\\d+","---",x)
#\\d表示一个任意的数字,+表示一个以上,所以4322和25都被替换成了---

> y
[1]"line ---: He is now --- years old, and weights ---lbs"
  

> x<- "line 4322: He is now 25 years old, and weights 130lbs"
> y <- gsub("[[:lower:]]","-",x)
#[[:lower:]]匹配小写字母,将所有小写字母都替换成了-
> y
[1]"---- 4322: H- -- --- 25 ----- ---, --- ------- 130---"

下面我们来举一个临床数据处理的例子

我们先读入临床数据
#读取临床数据
clin=read.table("clinical.tsv",header=T,sep="\t",quote="")
#去除重复的行
index=!duplicated(clin$case_submitter_id)
#提取非重复的样本的临床信息
clin=clin[index,]
可以得到如下临床信息表

前面给大家讲过☞肿瘤TNM分期,我们知道组织病理分期分成stage I,stage II,stage III和stage IV四个分期

接下来我们试着把组织病理分期从四个组合并成两个组,并转换成因子 我们使用gsub函数 #删除组织病理学分期末尾的A,B或者C等字母,例如Stage IIIA,Stage IIIB stage=gsub("[ABCD]$","",clin$ajcc_pathologic_stage) #将Stage III和Stage IV替换成stage III/IV stage=gsub("Stage IV.*","stage III/IV",stage) stage=gsub("Stage III.*","stage III/IV",stage) #将剩下的Stage I和Stage II替换成stage I/II stage=gsub("Stage.*","stage I/II",stage) #转换成因子 stage=factor(stage) stage 可以得到下面这个两分组的因子

接下来我们试着把组织病理分期从四个组合并成三个组,并转换成因子 我们还是使用gsub函数 #删除组织病理学分期末尾的A,B或者C等字母,例如Stage IIIA,Stage IIIB stage=gsub("[ABCD]$","",clin$ajcc_pathologic_stage) #将Stage III和Stage IV替换成stage III/IV,剩下的stageI和II保持不变 stage=gsub("Stage IV.*","stage III/IV",stage) stage=gsub("Stage III.*","stage III/IV",stage) #转换成因子 stage=factor(stage) stage 可以得到如下因子

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档