为了账号安全,请及时绑定邮箱和手机立即绑定

格式化R中的十进制位置

格式化R中的十进制位置

慕码人2483693 2019-06-26 15:49:58
格式化R中的十进制位置我有一个数字,例如1.128347132904321674821,当输出到屏幕(或写入文件)时,我只想显示为两个小数位。一个人是怎么做到的?x <- 1.128347132904321674821编辑:使用:options(digits=2)被认为是一个可能的答案。是否有一种方法可以在脚本中指定它供一次性使用?当我将它添加到我的脚本中时,它似乎没有做什么不同的事情,而且我对重新输入来格式化每个数字也不感兴趣(我正在自动化一个非常大的报告)。--回答:圆形(x,数字=2)
查看完整描述

3 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

背景:本页建议的一些答案(例如,signifoptions(digits=...))不能保证为任意数字显示一定数量的小数。我认为这是R中的一个设计特性,在这种设计特性下,良好的科学实践需要根据以下原则显示一定数量的数字:重要数字“.然而,在许多领域(例如,APA风格)格式要求显示一定数量的小数位。这样做往往是为了一致性和标准化目的,而不是为了重要的数字。

:

下面的代码正好显示了这个数字的两个小数位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"


查看完整回答
反对 回复 2019-06-26
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

你可以试试我的包裹可成型.

> # devtools::install_github("renkun-ken/formattable")> library(formattable)> x <- formattable(1.128347132904321674821, digits = 2, format = "f")> x[1] 1.13

好消息是,x仍然是一个数字向量,您可以使用相同的格式进行更多的计算。

> x + 1[1] 2.13

更好的是,这些数字不会丢失,您可以随时用更多的数字重新格式化:)

> formattable(x, digits = 6, format = "f")[1] 1.128347


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 696 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信