我的dataframe中有一列如下所示:
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语言创建正则表达式来完成这个任务。请协助
发布于 2022-07-06 08:48:12
一种可能的解决办法:
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'发布于 2022-07-06 11:43:48
要获得更整洁的输出,而不使用可能不需要的括号:
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'https://stackoverflow.com/questions/72880246
复制相似问题