在下面的数据框中,我正在尝试构建一个名为“avcomp”的新列,该列从“code”列中提取空格和%符号之间的数字值(如果duty_nature为“M”或“C”)。 我尝试了下面的代码,但它只能获取前两个数字和百分号。 请帮忙看一下吗?
avcomp列应该如下所示:
感谢您!
avcomp列应该如下所示:
>[1] "30", "0.50, ""
感谢您!
code <- c("Greater than 30% of something","Less than 0.50% of something","30%")
duty_nature<- c("M","C","A")
test <-data.frame(code,duty_nature)
test$avcomp <- ifelse(test$duty_nature == "M" | test$duty_nature == "C",str_sub(str_match(test$code,"\\s*(.*?)%\\s*"),-4,-1),"")