删除下划线前的一部分字符串

Remove a part of string before underscore

我有一个名字的特征向量,看起来像

A00_A09_Intestinal_infectious_diseases
A09_Diarrhoea_and_gastro_enteritis

我想删除字符串开头的 ID,这样它看起来像

Intestinal_infectious_diseases
Diarrhoea_and_gastro_enteritis

我想可以用 gsub 完成,但由于我的经验不足,我没有成功。 感谢您的帮助。

我们可以试试sub。匹配零个或多个字符后跟大写字母后跟一个或多个数字和下划线并将其替换为 ""

sub(".*[A-Z][0-9]+_", "", str1)
#[1] "Intestinal_infectious_diseases" "Diarrhoea_and_gastro_enteritis"

或者更具体地说,我们匹配一个或多个 ({1,}) 大写字母 ([A-Z]) 后跟一个或多个数字 ([0-9]+) 的模式由下划线 (_) 替换为空白 ("").

sub("([A-Z][0-9]+_){1,}", "", str1)

数据

str1 <- c("A00_A09_Intestinal_infectious_diseases", "A09_Diarrhoea_and_gastro_enteritis")