我使用 gsub
R 中的函数以删除数字中不需要的字符。所以我应该从字符串中删除每个不是数字的字符,.
, 和 -
.我的问题是正则表达式没有删除一些非数字字符,如 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"
谢谢你。
最佳答案
只需使用
gsub("[^0-9.-]", "", x)
您可以在多个
-
的情况下和 .
有第二个正则表达式处理这个问题。如果您对此感到困惑,请打开一个新问题。
(如果需要,请确保将
.
更改为 ,
)
关于r - 如何在 R 中使用 gsub 从字符串中删除非数字字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52722846/