首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R使用paste或paste0时保留0.0

R使用paste或paste0时保留0.0
EN

Stack Overflow用户
提问于 2012-09-03 14:41:02
回答 3查看 3.6K关注 0票数 5

这是一个简单的问题,但它开始让我恼火,因为我找不到解决方案……

我希望在使用paste或paste0时使用0.0作为输出时能够保持0.0,所以如果我有以下内容:

代码语言:javascript
运行
复制
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")

我得到了:

代码语言:javascript
运行
复制
[1] "x-1.5x" "x-1x"   "x-0.5x" "x0x"    "x0.5x"  "x1x"    "x1.5x" 

但是想要:

代码语言:javascript
运行
复制
[1] "x-1.5x" "x-1.0x"   "x-0.5x" "x0.0x"    "x0.5x"  "x1.0x"    "x1.5x" 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-03 14:47:28

您可以使用sprintf()

代码语言:javascript
运行
复制
paste0("x", sprintf("%.1f", y), "x")
票数 13
EN

Stack Overflow用户

发布于 2012-09-03 15:02:31

还有formatC

代码语言:javascript
运行
复制
paste0("x", formatC(y, digits = 1, format = "f"), "x")
票数 10
EN

Stack Overflow用户

发布于 2012-09-03 14:56:25

还有formatdrop0trailing

代码语言:javascript
运行
复制
paste0('x',format(y,drop0Trailing = F),'x')

而且,如果您真的想用0.0替换0,而不是(1.0-1.0),那么

代码语言:javascript
运行
复制
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" 

或者,就像@mrdwab建议的那样(并且不那么键入)

代码语言:javascript
运行
复制
paste0('x',gsub("^0$", "0.0", as.character(y)),'x')
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12243071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档