在R中设置小数点格式

我有一个数字,例如1.128347132904321674821,当输出到屏幕(或写入文件)时,我只想显示为两位小数。你是怎么做到的

x<-1.128347132904321674821

编辑:

使用:

选项(数字=2)

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

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

背景:本页建议的一些答案(例如,signif选项(数字=…))不能保证为任意数字显示一定数量的小数。我认为这是R中的一个设计特征,好的科学实践包括根据“有效数字”原则显示一定数量的数字。但是,在许多领域(如APA样式、业务报告)中,格式要求显示一定数量的小数位数。这通常是出于一致性和标准化的目的,而不是关注重要的数字

解决方案

以下代码正好显示了数字x的两位小数

格式(圆形(x,2),nsmall=2)

例如:

格式(圆形(1.20,2),nsmall=2)
# [1] "1.20"
格式(圆形(1,2),nsmall=2)
# [1] "1.00"
格式(圆形(1.1234,2),nsmall=2)
# [1] "1.12"

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

指定十进制<-函数(x,k)trimws(格式(圆形(x,k),nsmall=k))

例如:

指定小数点(1234,5)
# [1] "1234.00000"
指定_十进制(0.1234,5)
# [1] "0.12340"

发表评论