【问题标题】:The use of format.pval in R (and with \Sexpr in Sweave)在 R 中使用 format.pval(在 Sweave 中使用 \Sexpr)
【发布时间】:2012-01-16 13:24:10
【问题描述】:

我已经阅读了format.pval 的帮助文件,想知道这是否是一个正确的工具,可以输出具有正确格式的数字,就有效数字而言

在这篇文章中:

R / Sweave formatting numbers with \Sexpr{} in scientific notation

提出了一个解决方案,我想知道函数format.pval 是否已经在这里执行此操作。

我想我们可以在 Sweave 中将它用作 \Sexpr{format.pval(a value/variable here)} 以及有效位数的选项。

非常感谢...

【问题讨论】:

  • format.pval 使用更通用的format。所以你应该改用formatprettyNumformatC
  • @Andrie 谢谢。您可以考虑在此处将您的评论转换为解决方案吗? 1 票赞成。

标签: r sweave knitr


【解决方案1】:

我在knitr 包中包含了该功能,这使得knitr 现在变得非常聪明——如果您的\Sexpr{} 产生一个数字并且它太大或太小(如果你输出 HTML 而不是 TeX,它会自动使用a × 10<sup>b</sup>)。您现在可以开始从 Sweave 切换到 knitrhttp://yihui.github.com/knitr/

【讨论】:

  • 谢谢。 knitr 稳定吗?我知道它比 Sweave 更新得多,1 票赞成。
  • 第一个版本很快就会发布到CRAN,到时候就可以认为是稳定的了。
【解决方案2】:

format.pval 专门用于格式化打印的 p.values,例如在查看lm 的输出时。

format.pval 的主力是 format,它的用途更广泛。因此,您可能应该使用 format 或其表亲 - prettyNumformatC

脚注:要格式化日期(POSIXct 或 POSIXlt),您需要日期格式化函数 strptime

【讨论】:

    【解决方案3】:

    我认为format.pval 可能不应该被使用。我们(统计学家)通常不会对 $p$ 值使用传统的科学记数法,因为前导 0 也是精度的反映。因此我们使用总位数。您会在大多数学术出版物中找到这一点。

    例如,报告三位数字意味着“跟踪”值以“digits=3 和eps=0.001,0.0040523 的 p 值报告为 0.00405,这表明我的精度是在需要 0.004 时的十万位。

    我使用以下小包装器:

    format.p <- function(p, precision=0.001) {
      digits <- -log(precision, base=10)
      p <- formatC(p, format='f', digits=digits)
      p[p == formatC(0, format='f', digits=digits)] <- paste0('<', precision)
      p
    }
    

    【讨论】:

      【解决方案4】:

      为保守起见,p 值 0.32312 应四舍五入为 0.324,而不是 0.323。这是我的解决方案:

      format.p = function(p, precision=0.001) {
        digits = -log(precision, base=10)
        p = formatC(ceiling(p/precision)*precision,format = 'f', digits=digits)
        p[p == formatC(0, format='f', digits=digits)] = paste0('<', precision)
        p
      }
      

      【讨论】:

        猜你喜欢
        • 2012-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-10
        • 2018-09-07
        相关资源
        最近更新 更多