我有一个向量
a<-c(18.123412, 0, 1.5, 34.123, 2.1)
我想从中创建一个字符串。
paste(round(a,3), collapse = " " )
一切都很好,但是我希望每个数字都相同的输出的问题,我的意思是以下。现在我有
"18.123 0 1.5 34.123 2.1"
我需要
"18.123 0___ 1.5__ 34.123 2.1__"
在这里_表示数字具有较小数字的想法,我们需要用空间代替它们。知道我如何实现这一目标?
使用 formatC
:
formatC(a, width=10, drop0trailing=TRUE)
[1] " 18.12" " 0" " 1.5" " 34.12" " 2.1"
to paste
进入一个字符串,使用参数 collapse=""
:
paste0(formatC(a, width=10, drop0trailing=TRUE), collapse="")
[1] " 18.12 0 1.5 34.12 2.1"
为了离开Jusify,使用参数flag="-"
:
formatC(a, width=10, drop0trailing=TRUE, flag="-")
[1] "18.12 " "0 " "1.5 " "34.12 " "2.1 "
有关更多帮助和其他选项,请参见?formatC
,?prettyNum
或?format
。
如果您使用单词字体打印,那么添加正确数量的空间将修复此操作。
> paste(sprintf("%-8s", round(a, 3) ), collapse="")
#[1] "18.123 0 1.5 34.123 2.1 "
如果应该在具有比例字体的绘图表达式中使用,则需要其他策略。