【发布时间】:2012-08-25 23:52:04
【问题描述】:
如何(最快最好)从字符串的数字部分删除逗号而不影响字符串中的其余逗号。因此,在下面的示例中,我想从数字部分中删除逗号,但 dog 后面的逗号应该保留(是的,我知道 1023455 中的逗号是错误的,但只是扔了一个角盒)。
我有什么:
x <- "I want to see 102,345,5 dogs, but not too soo; it's 3,242 minutes away"
期望的结果:
[1] "I want to see 1023455 dogs, but not too soo; it's 3242 minutes away"
规定:必须在基础包中完成,不得添加。
提前谢谢你。
编辑: 谢谢 Dason、Greg 和 Dirk。你的两个回答都很好。我正在玩一些接近 Dason 的反应的东西,但括号内有逗号。现在再看也觉得没有道理。我对这两种响应进行了微基准测试,因为我需要速度(文本数据):
Unit: microseconds
expr min lq median uq max
1 Dason_0to9 14.461 15.395 15.861 16.328 25.191
2 Dason_digit 21.926 23.791 24.258 24.725 65.777
3 Dirk 127.354 128.287 128.754 129.686 154.410
4 Greg_1 18.193 19.126 19.127 19.594 27.990
5 Greg_2 125.021 125.954 126.421 127.353 185.666
+1 给你们所有人。
【问题讨论】:
-
What have you tried? 提示:R 有能力进行正则表达式替换。
-
@GSee 我确实使用了我提供的确切示例。稍后,我将发布整个代码。正如您在 Dirks 的回答中提到的那样,我会将 perl = TRUE 放入其中,但我不认为在 Dason 中使用它。