h.l*_*l.m 5 r digits paste significant-digits
这是一个简单的问题,但它开始让我烦恼,我找不到解决方案....
我希望能够在使用paste或paste0时将它作为输出保留0.0,所以如果我有以下内容:
y <- c(-1.5,-1.0,-0.5,0.0,0.5,1.0,1.5)
> y
[1] -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5
paste0("x",y,"x")
Run Code Online (Sandbox Code Playgroud)
我明白了:
[1] "x-1.5x" "x-1x" "x-0.5x" "x0x" "x0.5x" "x1x" "x1.5x"
Run Code Online (Sandbox Code Playgroud)
但想要:
[1] "x-1.5x" "x-1.0x" "x-0.5x" "x0.0x" "x0.5x" "x1.0x" "x1.5x"
Run Code Online (Sandbox Code Playgroud)
A5C*_*2T1 13
你可以使用sprintf():
paste0("x", sprintf("%.1f", y), "x")
Run Code Online (Sandbox Code Playgroud)
Ben*_*nes 10
还有formatC:
paste0("x", formatC(y, digits = 1, format = "f"), "x")
Run Code Online (Sandbox Code Playgroud)
还有format和drop0trailing
paste0('x',format(y,drop0Trailing = F),'x')
Run Code Online (Sandbox Code Playgroud)
并且,如果你真的只想0替换0.0,而不是(1.0或-1.0)那么
paste0('x',gsub(x = gsub(x = format(y, drop0trailing = T),'0$', '0.0'),' ',''),'x')
## [1] "x-1.5x" "x-1x" "x-0.5x" "x0.0x" "x0.5x" "x1x" "x1.5x"
Run Code Online (Sandbox Code Playgroud)
或者,正如@mrdwab建议的那样(并且不那么典型)
paste0('x',gsub("^0$", "0.0", as.character(y)),'x')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2648 次 |
| 最近记录: |