首页 > 解决方案 > 有没有办法从 R 中的字符串间隔值中获取最小值或最大值?

问题描述

我得到一个包含这些字符串价格区间的向量 x

x <- c("$100-$150","$90-$120","$30-$50")

我将如何编写一个函数来返回一个包含数字形式的每个间隔的最小值的向量?

x <- c(100,90,30)

另外,我将如何编写一个执行相同操作但返回最大值的函数?

标签: rstringmaxmin

解决方案


您可以使用strcapturefrom base R 来获得data.frame间隔的最小值和最大值:

strcapture("\\$([[:digit:]]+)-\\$([[:digit:]]+)", x, 
           data.frame(min = integer(), max = integer()))
##   min max
## 1 100 150
## 2  90 120
## 3  30  50
  • 模式 ( "\\$([[:digit:]]+)-\\$([[:digit:]]+)") 设置两个捕获数字组。
  • x是我们正在读取的对象
  • 原型形式被定义为data.frame具有两列,名为“min”和“max”,每列包含整数值。

推荐阅读