控制数字/舍入作为基本函数中的参数

Controlling digits / rounding as argument in base functions

在科学论文写作中,值通常报告为带一位、两位或三位数字的四舍五入值,通常取决于报告值的类型。这意味着每当在 Rmarkdown 中包含内联 mean 值我必须在代码中添加 round

因此我想知道:有没有办法控制基本函数输出的位数,例如mean() 作为 mean() 函数中的附加参数?其实这个附加参数也需要进行四舍五入。

显然有很多方法可以控制位数,例如round(), format()sprintf() 或在全局选项中指定位数。我不想要后一个选项,因为我需要在文档中使用不同数量的数字。

所以,我想要的是这样的: mean(c(0.34333, 0.1728, 0.5789), digits=2)

产生与以下相同的结果: round(mean(c(0.34333, 0.1728, 0.5789)), 2)

我知道,这有点傻,因为要键入的字符数在两个块中完全相同。对我来说,关键区别在于我可以在 输入变量后直接 编写 , digits=2) 而不必跳到块的开头来添加 round( and到最后加上, 2).

有什么想法吗?

我知道的最好方法是使用 magrittr

中的前向管道运算符 %>%
> library(magrittr)
> mean(c(0.34333, 0.1728, 0.5789))
[1] 0.36501
> mean(c(0.34333, 0.1728, 0.5789)) %>% round(3)
[1] 0.365

我还应该提一下,包 magrittr 被另一个非常流行的包 dplyr 使用,它为数据帧操作提供了额外的功能。所以,当我使用管道时,我几乎总是写 library(dplyr),而 magrittr 留在场景后面。