r - 从 cut 中提取断点

标签 r

这个问题在这里已经有了答案:





Extracting breakpoints with intervals closed on the left

(1 个回答)


5年前关闭。



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

aaa <- c(1,2,3,4,5,2,3,4,5,6,7)
labs <- levels(cut(aaa, 3))
cbind(lower = as.numeric( sub("\\((.+),.*", "\\1", labs) ),
      upper = as.numeric( sub("[^,]*,([^]]*)\\]", "\\1", labs) ))

#      lower upper
# [1,] 0.994  3.00
# [2,] 3.000  5.00
# [3,] 5.000  7.01

是否有另一种内置的方式来提取断点?

最佳答案

1) 读表 我不认为有任何直接针对此目的的内容,但这更短:

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::strapply 这是另一种可能性:
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

关于r - 从 cut 中提取断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36581075/

相关文章:

r - 简化为多个 R 版本构建 R Windows 二进制文件的过程

r - 将多行与多列数据R合并为一行

r - 使用两个变量将数据更改为长格式

r - foreach 错误 "could not find function "%do %""

python - 具有缺失值的分类数据中的降维

r - 如何在同一个图中绘制 x1、x2、x3 等?

r - kableExtra rmarkdown 表格 - 对齐分组行标签和脚注

r - 在哪里报告 R 包的错误?

r - 如何在电子邮件正文中发送 R Markdown 报告?

r - Tidyr 与可选组分开