如何在R中使用gsub从字符串中删除非数字字符?

时间:2018-10-09 13:56:18

标签: r regex gsub

我使用R中的gsub函数删除数字中不需要的字符。因此,我应该从字符串中删除每个不是数字的字符.-。我的问题是正则表达式不会删除一些非数字字符,例如d+<

下面是我的正则表达式,gsub执行及其输出。如何更改正则表达式以获得所需的输出?

当前输出:

gsub(pattern = '[^(-?(\\d*\\.)?\\d+)]', replacement = '', x = c('1.2<', '>4.5', '3+.2', '-1d0', '2aadddab2','1.3h'))
[1] "1.2<"  ">4.5"  "3+.2"  "-1d0"  "2ddd2" "1.3"

所需的输出:

[1] "1.2"  "4.5"  "3.2"  "-10"  "22" "1.3"

谢谢。

1 个答案:

答案 0 :(得分:4)

只需使用

gsub("[^0-9.-]", "", x)

如果有多个-.,则可以使用第二个regEx处理。 如果您遇到困难,请打开一个新问题。


针对您的新问题,提出一个涵盖所有案例的好例子。请勿更改3次。