extract_numeric("-2%") [1] -6ren">
gpt4 book ai didi

r - extract_numeric 可以处理负数吗?

转载 作者:行者123 更新时间:2023-12-02 21:24:49 24 4
gpt4 key购买 nike

有没有办法使用tidyr的extract_numeric()来提取负数?

例如,

> extract_numeric("2%")
[1] 2
> extract_numeric("-2%")
[1] 2

我真的希望第二次调用返回-2。

比尔

PS:虽然我今天不关心这个问题,但我怀疑诸如“-$2.00”之类的情况会使任何通用解决方案变得复杂。

最佳答案

extract_numeric 非常简单:

> extract_numeric
function (x)
{
as.numeric(gsub("[^0-9.]+", "", as.character(x)))
}
<environment: namespace:tidyr>

它只是替换任何不是 0 到 9 或“.”的字符。什么也没有。因此“-1”将变为 1,您对此无能为力...除非向 tidyr 提交增强请求,或者编写您自己的...

extract_num = function(x){as.numeric(gsub("[^0-9\\-]+","",as.character(x)))}

会做的:

> extract_num("-$1200")
[1] -1200
> extract_num("$-1200")
[1] -1200
> extract_num("1-1200")
[1] NA
Warning message:
In extract_num("1-1200") : NAs introduced by coercion

但是正则表达式可能会做得更好,只允许在开头使用减号......

关于r - extract_numeric 可以处理负数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25291191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com