使用R提取列中的值

使用R提取列中的值,r,regex,R,Regex,我有一个列,其值如下所示 v2 <- c("[0,1]", "[4,8]", "[10, 23]") df <- data.frame(v2, stringsAsFactors = FALSE) v2您可以使用strcapture捕获值,还可以确保数据帧接收数值 strcapture("(\\d+)\\s*,\\s*(\\d+)",v2,data.frame(Min=numeric(),Max=numeric())) Min Max 1 0 1 2 4 8 3

我有一个列,其值如下所示

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

v2您可以使用
strcapture
捕获值,还可以确保数据帧接收
数值

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

我不知道为什么会投否决票,我想人们对此有点得意忘形+1只是为了撤销它。你应该从将范围拆分为两个值的函数开始,一旦你有了它,你就可以在向量上使用一个“应用”函数来生成结果矩阵。非常感谢!它解决了我的问题!