首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中第一次出现连字符或下划线之前删除字符串中的单词

在R中第一次出现连字符或下划线之前删除字符串中的单词
EN

Stack Overflow用户
提问于 2020-11-16 09:16:46
回答 2查看 797关注 0票数 1

在第一次出现连字符或下划线之前,我正在尝试删除字符串中的特定单词。

下面是我将收到的输入字符串示例

代码语言:javascript
复制
Sec_GHTY_WE
NewSec_JOL_ru
Sec-KIH-YRK
Sec_PWq-FTF
NewSec-LPO-WE

从上面的字符串中,我想从字符串中删除'Sec‘或'NewSec’,并将前缀/替换为其他单词,比如'MYD‘。或者,在第一次出现连字符或下划线后,我只能提取剩余的字符串。预期产出如下

代码语言:javascript
复制
MYD_GHTY_WE   (OR)   GHTY_WE
MYD_JOL_ru           JOL_ru
MYD-KIH-YRK          KIH-YRK
MYD_PWq-FTF          PWq-FTF
MYD-LPO-WE           LPO-WE

我已经尝试了下面的代码,但它并没有给我期望的输出粘贴方法。但是我必须用粘贴来给出最终的输出。

代码语言:javascript
复制
a <- Sec_GHTY_WE
paste0((a %>% gsub('\\bSec', "text1", ., ignore.case = TRUE) %>% gsub('\\bNewSec', "text2", ., ignore.case = TRUE)), "_", 1)

我需要R基地的解决方案。

EN

回答 2

Stack Overflow用户

发布于 2020-11-16 09:22:49

如果您的数据文件是df,那么列名为V1

替换第一个下划线或连字符之前的文本:

代码语言:javascript
复制
df$V2 <- sub('.*?[-_]', 'MYD_', df$V1)
df
#             V1          V2
#1   Sec_GHTY_WE MYD_GHTY_WE
#2 NewSec_JOL_ru  MYD_JOL_ru
#3   Sec-KIH-YRK MYD_KIH-YRK
#4   Sec_PWq-FTF MYD_PWq-FTF
#5 NewSec-LPO-WE  MYD_LPO-WE

替换'Sec''NewSec'

代码语言:javascript
复制
df$V2 <- sub('Sec|NewSec', 'MYD', df$V1)
票数 2
EN

Stack Overflow用户

发布于 2020-11-16 19:54:45

我们可以使用来自str_replacestringr

代码语言:javascript
复制
library(stringr)
df$V2 <- str_replace(df$V1, 'Sec|NewSec', 'MYD')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64855303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档