r-将数字加入字符串输出,将每个数字格式化以采用相同的字符宽度



我有一个向量

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     "

如果应该在具有比例字体的绘图表达式中使用,则需要其他策略。

相关内容

  • 没有找到相关文章