【问题标题】:Converting numbers to string in R while retaining trailing zeros/negative signs在R中将数字转换为字符串,同时保留尾随零/负号
【发布时间】:2020-08-18 12:56:24
【问题描述】:

我有一个dataset,其中包含 95% 置信区间的估计值和下限/上限。

这里是示例代码:

data <- as.data.frame(cbind(-0.6142, -1.2190, -0.0092))

colnames(data) <- cbind("Estimate", "LowerCI", "UpperCI")

paste(as.character(round(data$Estimate,1)), '(', as.character(round(data$LowerCI,1)), ',', as.character(round(data$UpperCI,1)), ')')

我正在尝试创建一个可以输出到 Word 的变量,如下所示: -0.6 (-1.2, -0.0)

但我最终得到: -0.6 ( -1.2 , 0 )

问题是:

  1. 间距关闭; -1.2 之前/之后有一个空格,0.0 之前/之后有一个空格
  2. 没有尾随零
  3. 理想情况下,我希望在 0 前加上负号(“-0.0”),以表示 95% 置信区间不超过零。

如果有任何提示,我将不胜感激。

【问题讨论】:

  • 尝试sprintf('%.1f', data$UpperCI) 而不是as.character(round(data$UpperCI,1))

标签: r


【解决方案1】:

您可以将sprintf 与格式字符串"%01.1f" 一起使用:

x = c(-0.6142, -1.2190, -0.0092)
sprintf(fmt = "%01.1f", x)
[1] "-0.6" "-1.2" "-0.0"

您也可以使用sprintf 将它们放在一起:

with(data, sprintf(fmt = "%01.1f (%01.1f, %01.1f)", Estimate, LowerCI, UpperCI))
# [1] "-0.6 (-1.2, -0.0)"

我没有它来真正解释 - 我建议浏览 ?sprintf 帮助页面,运行页面底部的示例,然后如果您愿意,请更仔细地阅读该页面了解细微差别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2022-09-29
    • 2010-09-22
    相关资源
    最近更新 更多