首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建Regex以从行值中删除字符串和字符。

创建Regex以从行值中删除字符串和字符。
EN

Stack Overflow用户
提问于 2022-07-06 08:31:45
回答 2查看 46关注 0票数 2

我的dataframe中有一列如下所示:

代码语言:javascript
复制
branching_loc <- c("([preliminary_arm_1][antibiotic_arm] = '1') and [was_review_done]='1'",
                   "[preliminary_arm_1][antibiotic_arm]  = '1' and [was_review_done]=='1'",
                   "[preliminary_arm_1][antibiotic_arm]  = '1' and [was_review_done]=='1'",
                   "[preliminary_arm_1][antibiotic_arm]  = '1' and [was_review_done]=='1'")
                                                 
df <- data.frame(branching_loc)

现在,我确实希望只从该行值中删除preliminary_arm_1。我很难用R语言创建正则表达式来完成这个任务。请协助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-06 08:48:12

一种可能的解决办法:

代码语言:javascript
复制
library(tidyverse)

df %>% 
  mutate(branching_loc = str_remove(branching_loc, "\\[preliminary_arm_1\\]"))

#>                                        branching_loc
#> 1 ([antibiotic_arm] = '1') and [was_review_done]='1'
#> 2 [antibiotic_arm]  = '1' and [was_review_done]=='1'
#> 3 [antibiotic_arm]  = '1' and [was_review_done]=='1'
#> 4 [antibiotic_arm]  = '1' and [was_review_done]=='1'
票数 2
EN

Stack Overflow用户

发布于 2022-07-06 11:43:48

要获得更整洁的输出,而不使用可能不需要的括号:

代码语言:javascript
复制
df %>%
  mutate(branching_loc = gsub("^\\(?\\[\\w+\\]|\\)(?=\\sand)", "", branching_loc, perl = TRUE))
                                       branching_loc
1   [antibiotic_arm] = '1' and [was_review_done]='1'
2 [antibiotic_arm]  = '1' and [was_review_done]=='1'
3 [antibiotic_arm]  = '1' and [was_review_done]=='1'
4 [antibiotic_arm]  = '1' and [was_review_done]=='1'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72880246

复制
相关文章

相似问题

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