提取R中的列中的所有数值

时间:2015-06-18 20:06:48

标签: regex r

我目前正在使用R处理大型数据集。所以,我有一个名为“Offers”的列。此列包含描述公司在其产品上提供的“促销”的文字。我试图从这些中提取数值。虽然在大多数情况下,我能够在R包中使用正则表达式和函数的组合做得很好,但我无法处理下面显示的几个特定文本案例。我真的很感激这些方面的帮助。

  1. "Buying this ensures Savings of $50. Online Credit worth 35$ is also available. So buy soon!"

    1a上。我希望得到两个数值,但在2个不同的列中。怎么样    我会这样做吗?

    1b中。对于我必须解决的另一个问题,我只需要获取与信用相关的值。总是如此,对于上述文本,文本中的第二个数字值(如果存在)是与信用证相关联的值。

  2. "Get 50% off on your 3 night stay along with 25 credits, offer available on 3 December 2016"

  3. (我应该如何仅获取与积分相关的值?)

    注意:效率也很重要因为我正在处理大约1400万行。

    我试过在线寻找解决方案,但没有找到任何令人满意的结果。

1 个答案:

答案 0 :(得分:0)

我不是百分之百确定你想要什么,但这可能对你有帮助。

A <- "do 50% and whatever 23"
B <- gregexpr("\\d+",A)[[1]]
firstNum <- substr(A,B[1],B[1]+attr(B,"match.length")[1]-1)
secondNum <- substr(A,B[2],B[2]+attr(B,"match.length")[2]-1)

希望这有帮助。