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

时间:2016-09-23 08:45:14

标签: r gsub

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

A00_A09_Intestinal_infectious_diseases
A09_Diarrhoea_and_gastro_enteritis

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

Intestinal_infectious_diseases
Diarrhoea_and_gastro_enteritis

我想可以用gsub完成,但由于我的经验不足,它对我来说没有用。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:4)

我们可以尝试使用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")