删除以数字值开头的字符串的最后一部分

时间:2015-07-01 19:32:38

标签: r

我有药物名称的数据框。每种药物都有多种剂量。例如,我有:

 x <- data.frame(c("DrugX 10 mg", "DrugX 20 mg", "DrugX 30mg", "DrugX 2% Cream", "DrugX 10% Gel", "DrugY 20 mg", "DrugY 30 mg"))

 x[,1] <- as.character(x[,1])

我想删除给定数值后的所有内容。所以我想要一个新的数据框,如下所示:

 xnew <- data.frame(c("DrugX", "DrugX", "DrugX", "DrugX", "DrugX", "DrugY", "Drug Y"))

此时我想采取“独特的”

 xnew2 <- unique(xnew)

所以我的最终产品将是

 xnew2 <- c("DrugX", "Drug Y")

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

您可以尝试sub

v1 <- sub('\\s*\\d+.*$', '', x[,1])
v1
#[1] "DrugX" "DrugX" "DrugX" "DrugX" "DrugX" "DrugY" "DrugY"

unique(v1)
#[1] "DrugX" "DrugY"

答案 1 :(得分:1)

偷偷摸摸的可能性:

unique(gsub(' .*','\\1',x[,1]))
#[1] "DrugX" "DrugY"