我有药物名称的数据框。每种药物都有多种剂量。例如,我有:
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")
提前感谢您的帮助!
答案 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"