我目前正在使用R处理大型数据集。所以,我有一个名为“Offers”的列。此列包含描述公司在其产品上提供的“促销”的文字。我试图从这些中提取数值。虽然在大多数情况下,我能够在R包中使用正则表达式和函数的组合做得很好,但我无法处理下面显示的几个特定文本案例。我真的很感激这些方面的帮助。
"Buying this ensures Savings of $50. Online Credit worth 35$ is also available. So buy soon!"
1a上。我希望得到两个数值,但在2个不同的列中。怎么样 我会这样做吗?
1b中。对于我必须解决的另一个问题,我只需要获取与信用相关的值。总是如此,对于上述文本,文本中的第二个数字值(如果存在)是与信用证相关联的值。
"Get 50% off on your 3 night stay along with 25 credits, offer available on 3 December 2016"
(我应该如何仅获取与积分相关的值?)
注意:效率也很重要因为我正在处理大约1400万行。
我试过在线寻找解决方案,但没有找到任何令人满意的结果。
答案 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)
希望这有帮助。