11

我只是想在 R 数字中四舍五入,例如:

> round(1.327076e-09)

我希望它导致

> 1.33e-09

但导致

> 0

可以使用哪个功能?

4

3 回答 3

19

尝试signif

在此处输入图像描述

> signif(1.326135235e-09, digits = 3)
[1] 1.33e-09
于 2011-04-15T10:51:38.933 回答
8

使用signif

x <- 1.327076e-09 
signif(x,3)
[1] 1.33e-09

sprintf

sprintf("%.2e",x)
[1] "1.33e-09"
于 2011-04-15T10:52:40.110 回答
2

该函数round将进行舍入,您可以指定小数位数:

x <- 1.327076e-09
round(x, 11)
[1] 1.33e-09

迎接@Joris 和@GavinSimpson 提出的挑战——要trunc解决这个问题,请执行以下操作:

library(plyr)
round_any(x, 1e-11, floor)
[1] 1.32e-09
于 2011-04-15T10:52:28.657 回答