gpt4 book ai didi

r - 如何将负号从字符保留为数字

转载 作者:行者123 更新时间:2023-12-04 10:33:39 25 4
gpt4 key购买 nike

我想在将其转换为数字类时保留字符的负号。但最终得到了一个警告,比如强制引入的 NAs。

test <- c("001","00-2","0003")
test <- as.numeric(as.character(test))

我希望真正的输出是:

1 -2 3

但目前的输出是:

1 不适用 3

任何人都可以帮我解决这个问题吗?谢谢!

最佳答案

1) 子 删除前导 0,然后转换:

as.numeric(sub("^0+", "", test))
## [1] 1 -2 3

2) 修剪 在 R 3.6 或更高版本中,这也适用:
as.numeric(trimws(test, "left", 0))
## [1] 1 -2 3

边缘情况

3) paste0 如果可以全部为零,则 sub将该字符串减少为空字符串,因此假设我们没有小数,我们可以这样做:
test2 <- c(test, "00")
as.numeric(sub("^0+", "", paste0(test2, ".0")))
## [1] 1 -2 3 0

3a) 或这个:
as.numeric(sub("^0*(.)", "\\1", test2))
## [1] 1 -2 3 0

关于r - 如何将负号从字符保留为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57935654/

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