例如,如果将21690i写入到一个十进制数,则将其作为两位输出(例如,将216901写入到一个十进制数).怎么做到的?

x <- 1.128347132904321674821

编辑:

使用:

options(digits=2)

这是一个可能的答案.有没有办法在脚本中指定一次性使用?当我把它添加到我的脚本中时,它似乎没有做任何不同的事情,而且我对大量重新键入以格式化每个数字不感兴趣(我正在自动生成一个非常大的报告).

--

答案:四舍五入(x,数字=2)

推荐答案

Background:本页建议的一些答案(例如,signifoptions(digits=...))不能保证对任意数字显示一定数量的小数.我认为这是R中的一个设计特征,好的科学实践包括根据"significant figures"原则显示一定数量的数字.然而,在许多领域(例如APA style、业务报告),格式要求要求显示一定数量的小数位数.这通常是出于一致性和标准化的目的,而不是关心重要的数字.

Solution:

下面的代码正好显示数字x的两位小数.

format(round(x, 2), nsmall = 2)

例如:

format(round(1.20, 2), nsmall = 2)
# [1] "1.20"
format(round(1, 2), nsmall = 2)
# [1] "1.00"
format(round(1.1234, 2), nsmall = 2)
# [1] "1.12"

更一般的函数如下所示,其中x是数字,k是要显示的小数位数.trimws删除任何前导空格,如果你有一个数字向量,这可能很有用.

specify_decimal <- function(x, k) trimws(format(round(x, k), nsmall=k))

例如.,

specify_decimal(1234, 5)
# [1] "1234.00000"
specify_decimal(0.1234, 5)
# [1] "0.12340"

Discussion of alternatives:

formatC answerssprintf answers运行得相当好.但在某些情况下,它们会显示负零,这可能是不需要的.即.,

formatC(c(-0.001), digits = 2, format = "f")
# [1] "-0.00"
sprintf(-0.001, fmt = '%#.2f')
# [1] "-0.00"

一种可能的解决方法如下:

formatC(as.numeric(as.character(round(-.001, 2))), digits = 2, format = "f")
# [1] "0.00" 

R相关问答推荐

使用spatVector裁剪网格数据时出现的问题

更新合适的R mgcv::bam模型报告无效类型(关闭).'';错误

如何将dygraph调用到R Markdown作为一个shiny 的react 对象的参数?

R s iml包如何处理语法上无效的因子级别?'

是否可以创建一个ggplot与整洁判断的交互作用

在ggplot中为不同几何体使用不同的 colored颜色 比例

提取第一个下划线和最后一个下划线之间的任何内容,例外情况除外

当我添加美学时,geom_point未对齐

计算直线上点到参考点的总距离

如何从向量构造一系列双边公式

如何使用同比折线图中的个别日

我们如何在R中透视数据并在之后添加计算

将具有坐标列表列的三角形转换为多个多边形

为什么我对圆周率图的蒙特卡罗估计是空的?

删除数据帧中特定行号之间的每第三行和第四行

按组使用dummy r获取高于标准的行的平均值

具有自定义仓位限制和计数的GGPLATE直方图

有没有办法将勾选/审查标记添加到R中的累积关联图中?

R:水平旋转图

通过分析特定列中的字符串在数据框中创建新的行和列