Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从cut中提取断点_R - Fatal编程技术网

R 从cut中提取断点

R 从cut中提取断点,r,R,cut函数的文档提供了“提取断点的一种方法” aaa1)阅读。表格我不认为有任何直接的目的,但这是简短的: read.table(text = gsub("[^.0-9]", " ", labs), col.names = c("lower", "upper")) 给出此data.frame: lower upper 1 0.994 3.00 2 3.000 5.00 3 5.000 7.01 2)gsubfn::Straply这是另一种可能性: library(gsubfn)

cut
函数的文档提供了“提取断点的一种方法”

aaa1)阅读。表格我不认为有任何直接的目的,但这是简短的:

read.table(text = gsub("[^.0-9]", " ", labs), col.names = c("lower", "upper"))
给出此data.frame:

  lower upper
1 0.994  3.00
2 3.000  5.00
3 5.000  7.01
2)gsubfn::Straply这是另一种可能性:

library(gsubfn)

strapply(labs, "[.0-9]+", as.numeric, simplify = rbind)
给出该矩阵:

      [,1] [,2]
[1,] 0.994 3.00
[2,] 3.000 5.00
[3,] 5.000 7.01
3)gsubfn::read.pattern和另一个:

library(gsubfn)

read.pattern(text = labs, pattern = ".(.+),(.+).", col.names = c("lower", "upper"))
给予:

  lower upper
1 0.994  3.00
2 3.000  5.00
3 5.000  7.01

下面是一个使用strsplit()的解决方案


您可以将正则表达式简化一点:
为.numeric(sub('.(.+),.+','\\1',labs));as.numeric(sub(“.+,(.+).”,“\\1',labs))
回答得不错。如果有人有高数字,它将使用科学记数法,
e
将破坏格式。。。所以改用这个正则表达式:
gsub(pattern=“[\\]\\\(),]”,replacement=“”,x=labs,perl=TRUE)
  lower upper
1 0.994  3.00
2 3.000  5.00
3 5.000  7.01
sapply(strsplit(labs, "\\(|,|]"), function(x) as.numeric(x[-1]))
#       [,1] [,2] [,3]
# [1,] 0.994    3 5.00
# [2,] 3.000    5 7.01