2

我有一个矢量图

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__"

这里 _ 表示由于数字的位数较少,我们需要用空格替换它们。知道如何实现这一目标吗?

4

2 回答 2

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获取更多帮助和其他选项。

于 2012-11-05T21:49:47.137 回答
1

如果您使用等宽字体打印,则添加正确数量的空格将解决此问题。

> paste(sprintf("%-8s", round(a, 3) ), collapse="")
#[1] "18.123  0       1.5     34.123  2.1     "

如果这应该用于具有比例字体的绘图表达式中,您将需要其他策略。

于 2012-11-05T21:51:49.710 回答