格式化数字以使其不显示前导零的最佳方法是什么。例如:
test = .006
sprintf/format/formatC( ??? ) # should result in ".006"
格式化数字以使其不显示前导零的最佳方法是什么。例如:
test = .006
sprintf/format/formatC( ??? ) # should result in ".006"
我相信我以前回答过一次,但找不到。你不能告诉sprintf()
et al 关于删除前导零的格式......所以你必须自己做,例如通过substring()
:
R> val <- 0.006
R> aa <- substring(sprintf("%4.3f", val), 2)
R> aa
[1] ".006"
R>
f <- function(x) gsub("^(\\s*[+|-]?)0\\.", "\\1.", as.character(x))
f(0.006)
# ".006"
f(-0.006)
# "-.006"
f("+0.006")
# "+.006"
f(" 0.006")
# " .006"
f(10.05)
# "10.05"
您始终可以使用正则表达式搜索和替换来修复它:
library(stringr)
test = .006
str_replace(as.character(test), "^0\\.", ".")
不是最优雅的答案,但它有效。替换您喜欢的任何字符串转换as.character
,例如sprintf
使用您喜欢的浮点格式。