从df中的一列的字符串值中提取数字到另一列

时间:2015-11-12 15:54:56

标签: r dataframe lapply substr

我想从我的数据框的一列中的字符串值中提取数字,并将它们放入另一列。列“a”中的所有值都是唯一的。 此代码使列“b”充满NA

df$b <- lapply(df$a,function(i){as.numeric(substr(df[i,"a"], 
regexpr("abc[0-9]+",df[i,"a"]) + 2, regexpr("abc[0-9]+",df[i,"a"]) + 
attr(regexpr("abc[0-9]+", df[i,"a"]), "match.length") -1))})

1 个答案:

答案 0 :(得分:0)

我们可以尝试

 library(stringr)
 as.numeric(unlist(str_extract_all(df$a, '\\d+')))