格式化R中的十进制位置

格式化R中的十进制位置

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

x <- 1.128347132904321674821

编辑:

使用:

options(digits=2)

被认为是一个可能的答案。是否有一种方法可以在脚本中指定它供一次性使用?当我将它添加到我的脚本中时,它似乎没有做什么不同的事情,而且我对重新输入来格式化每个数字也不感兴趣(我正在自动化一个非常大的报告)。

--

回答:圆形(x,数字=2)


慕码人2483693
浏览 699回答 3
3回答

慕妹3146593

背景:本页建议的一些答案(例如,signif,&nbsp;options(digits=...))不能保证为任意数字显示一定数量的小数。我认为这是R中的一个设计特性,在这种设计特性下,良好的科学实践需要根据以下原则显示一定数量的数字:重要数字“.然而,在许多领域(例如,APA风格)格式要求显示一定数量的小数位。这样做往往是为了一致性和标准化目的,而不是为了重要的数字。解:下面的代码正好显示了这个数字的两个小数位x.format(round(x,&nbsp;2),&nbsp;nsmall&nbsp;=&nbsp;2)例如:format(round(1.20,&nbsp;2),&nbsp;nsmall&nbsp;=&nbsp;2)#&nbsp;[1]&nbsp;"1.20"format(round(1,&nbsp;2),&nbsp;nsmall&nbsp;=&nbsp;2)#&nbsp;[1]&nbsp;"1.00"format(round(1.1234,&nbsp;2),&nbsp;nsmall&nbsp;=&nbsp;2)#&nbsp;[1]&nbsp;"1.12"一个更一般的函数如下所示x是数字和k要显示的小数。trimws移除任何前导空格,如果您有一个数字向量,这将是有用的。specify_decimal&nbsp;<-&nbsp;function(x,&nbsp;k)&nbsp;trimws(format(round(x,&nbsp;k),&nbsp;nsmall=k))例如,specify_decimal(1234,&nbsp;5)#&nbsp;[1]&nbsp;"1234.00000"specify_decimal(0.1234,&nbsp;5)#&nbsp;[1]&nbsp;"0.12340"

慕无忌1623718

你可以试试我的包裹可成型.>&nbsp;#&nbsp;devtools::install_github("renkun-ken/formattable")>&nbsp;library(formattable)>&nbsp;x&nbsp;<-&nbsp;formattable(1.128347132904321674821,&nbsp;digits&nbsp;=&nbsp;2,&nbsp;format&nbsp;=&nbsp;"f")>&nbsp;x[1]&nbsp;1.13好消息是,x仍然是一个数字向量,您可以使用相同的格式进行更多的计算。>&nbsp;x&nbsp;+&nbsp;1[1]&nbsp;2.13更好的是,这些数字不会丢失,您可以随时用更多的数字重新格式化:)>&nbsp;formattable(x,&nbsp;digits&nbsp;=&nbsp;6,&nbsp;format&nbsp;=&nbsp;"f")[1]&nbsp;1.128347
打开App,查看更多内容
随时随地看视频慕课网APP