我有一个载体
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__"
这里_表示这样的想法,因为数字的位数较少,我们需要用空格替换它们。 知道如何实现这个目标吗?
答案 0 :(得分:3)
使用formatC
:
formatC(a, width=10, drop0trailing=TRUE)
[1] " 18.12" " 0" " 1.5" " 34.12" " 2.1"
要paste
到单个字符串,请使用参数collapse=""
:
paste0(formatC(a, width=10, drop0trailing=TRUE), collapse="")
[1] " 18.12 0 1.5 34.12 2.1"
要左对齐,请使用参数flag="-"
:
formatC(a, width=10, drop0trailing=TRUE, flag="-")
[1] "18.12 " "0 " "1.5 " "34.12 " "2.1 "
有关更多帮助和其他选项,请参阅?formatC
,?prettyNum
或?format
。
答案 1 :(得分:1)
如果使用等宽字体打印,则添加正确数量的空格将解决此问题。
> paste(sprintf("%-8s", round(a, 3) ), collapse="")
#[1] "18.123 0 1.5 34.123 2.1 "
如果这应该在带有比例字体的plotmath表达式中使用,则需要其他策略。