如何删除前导"0" 在数字R变量中

rol*_*do2 20 formatting r decimal

如何简洁地更改数字R变量(保持数字),以便例如"-0.34"变为简单的"-.34"?

ste*_*fan 25

只有在输出数值时,您才必须选择具体的表示(即,应如何格式化数字).您不能将数字变量从"-0.34"更改为"-.34"; 两者都是相同数字的表示.

但是,输出表达式时e,可以选择应如何格式化.我不知道有什么内置的方法可以省去领先的"0",但你总是可以手动删除它:

> sub("^(-?)0.", "\\1.", sprintf("%.2f", -0.34))
[1] "-.34"
Run Code Online (Sandbox Code Playgroud)

您可以为方便起见定义一个函数,例如,

numformat <- function(val) { sub("^(-?)0.", "\\1.", sprintf("%.2f", val)) }
Run Code Online (Sandbox Code Playgroud)


hpl*_*ger 10

除了现有的答案,我还想提一下,该软件包weights有一个功能rd(),可用于"将数字舍入到没有前导零的文本".当然,结果不是数字而是字符.

library("weights")
rd(-0.341, digits=2)
[1] "-.34"
Run Code Online (Sandbox Code Playgroud)