gpt4 book ai didi

r - gsub 删除不需要的精度

转载 作者:行者123 更新时间:2023-12-04 11:21:51 32 4
gpt4 key购买 nike

任何人都可以通过 gsub 帮助实现以下目标在R?

input string: a=5.00,b=120,c=0.0003,d=0.02,e=5.20, f=1200.0,g=850.02
desired output: a=5,b=120,c=0.0003,d=0.02,e=5.2, f=1200, g=850.02

实际上,如果小数点后多余的 0 都是 0,则删除它们,如果存在实数,则不要删除。

最佳答案

我无法使用 gsub 使其正常工作单独,但我们可以尝试用逗号分割您的输入向量,然后使用 apply功能与 gsub :

x <- "a=5.00,b=120,c=0.0003,d=0.02,e=5.20, f=1200.0,g=850.02"
input <- sapply(unlist(strsplit(x, ",")), function(x) gsub("(?<=\\d)\\.$", "", gsub("(\\.[1-9]*)0+$", "\\1", x), perl=TRUE))
input <- paste(input, collapse=",")
input

[1] "a=5,b=120,c=0.0003,d=0.02,e=5.2, f=1200,g=850.02"

Demo

我实际上打了两次电话 gsub .如果数字有一个,第一个调用会去除小数点后出现的所有尾随零。第二次调用删除杂散的小数点,在像 5.00 这样的数字的情况下。 ,第一个电话会留下 5.而不是 5 ,后者是我们想要的。

关于r - gsub 删除不需要的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50332574/

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