【发布时间】:2021-12-01 11:12:17
【问题描述】:
我正在尝试删除此字符串中的第 5 个分隔符:
"Bacteria_Firmicutes_Clostridia_Clostridiales_Rumino_coccaceae_Ruminococcus_Ruminococcus_albus"
这样就变成了:
"Bacteria_Firmicutes_Clostridia_Clostridiales_Ruminococcaceae_Ruminococcus_Ruminococcus_albus"
这似乎可行,但我觉得应该有一个更优雅的解决方案,可能使用 regex 和 str_replace
library(stringr)
name <- "Bacteria_Firmicutes_Clostridia_Clostridiales_Rumino_coccaceae_Ruminococcus_Ruminococcus_albus"
index <- str_locate_all(name, "_")[[1]]
str_sub(name, index[5, "start"], index[5, "end"]) <- ""
name
【问题讨论】:
-
你的意思是你只想从字符串中删除第五个下划线(“_”)?还是要将字符串拆分为第五个下划线之前/之后的两个字符串?还是别的什么?
-
^前者,抱歉,为了更清楚,我编辑了我的帖子
-
由于已关闭,我无法提供正确的“答案”。但是,这应该可以:
gsub("((?:[^_]+_){4}[^_]+)_", "\\1", name)(其中name是您定义的字符串)