r - 将数字连接到字符串输出中,格式化每个数字以采用相同的字符宽度

标签 r concatenation number-formatting output-formatting

我有一个向量

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"

要将粘贴到单个字符串中,请使用参数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

关于r - 将数字连接到字符串输出中,格式化每个数字以采用相同的字符宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240879/

相关文章:

r - 如何删除使用 arules 包读取的事务数据中的空列?

powershell - 如何将解析路径与另一个目录连接

php - 如何在 PHP 中将数字修剪为 5 位数字?

通过将行与 R 中的匹配属性绑定(bind)来替换缺失的 "NA"值

r - 存储(几乎)列表中工作区中的所有对象

javascript - 如何用另一个数组的元素替换数组中的元素

Python 文件串联

java - Birt 报告 印度卢比 格式

java - 如何将 Double 转换为带指数符号的 String

RPostgreSQL 连接在使用 doParallel clusterEvalQ 启动后立即过期