使用R提取列中的值

时间:2018-04-30 19:36:14

标签: r regex

我的列的值如下所示。

v2 <- c("[0,1]", "[4,8]", "[10, 23]")
df <- data.frame(v2, stringsAsFactors = FALSE)

我如何提取第一个数字(下限)和第二个数字(上限)?并保存到Min和Max栏中?

谢谢!

-Shelly

1 个答案:

答案 0 :(得分:3)

您可以使用strcapture来捕获值,并确保数据框占用numeric values

strcapture("(\\d+)\\s*,\\s*(\\d+)",v2,data.frame(Min=numeric(),Max=numeric()))
  Min Max
1   0   1
2   4   8
3  10  23

或者你可以做

read.csv(text=gsub("\\[|\\]","",v2),h=F,col.names = c("Min","Max"))
  Min Max
1   0   1
2   4   8
3  10  23

或者您可以使用tidyr的extract

tidyr::extract(df, v2,c("Min","Max"),"(\\d+)\\s*,\\s*(\\d+)")
  Min Max
1   0   1
2   4   8
3  10  23