Movatterモバイル変換


[0]ホーム

URL:


Round {base}R Documentation

Rounding of Numbers

Description

ceiling takes a single numeric argumentx and returns anumeric vector containing the smallest integers not less than thecorresponding elements ofx.

floor takes a single numeric argumentx and returns anumeric vector containing the largest integers not greater than thecorresponding elements ofx.

trunc takes a single numeric argumentx and returns anumeric vector containing the integers formed by truncating the values inx toward0.

round rounds the values in its first argument to the specifiednumber of decimal places (default 0). See ‘Details’ about“round to even” when rounding off a 5.

signif rounds the values in its first argument to the specifiednumber ofsignificant digits. Hence, fornumericx,signif(x, dig) is the same asround(x, dig - ceiling(log10(abs(x)))).

Usage

ceiling(x)floor(x)trunc(x, ...)round(x, digits = 0, ...)signif(x, digits = 6)

Arguments

x

a numeric vector. Or, forround andsignif, acomplex vector.

digits

integer indicating the number of decimal places(round) or significant digits (signif) to be used.Forround, negative values are allowed (see ‘Details’).

...

arguments to be passed to methods.

Details

These are generic functions: methods can be defined for themindividually or via theMath groupgeneric.

Note that for rounding off a 5, theIEC 60559 standard (see also‘IEEE 754’) is expected to be used, ‘go to the even digit’.Thereforeround(0.5) is0 andround(-1.5) is-2. However, this is dependent on OS services and onrepresentation error (since e.g.0.15 is not representedexactly, the rounding rule applies to the represented number and notto the printed number, and soround(0.15, 1) could be either0.1 or0.2).

Rounding to a negative number of digits means rounding to a power often, so for exampleround(x, digits = -2) rounds to the nearesthundred.

Forsignif the recognized values ofdigits are1...22, and non-missing values are rounded to the nearestinteger in that range. Each element of the vector is rounded individually, unlike printing.

These are all primitive functions.

S4 methods

These are all (internally) S4 generic.

ceiling,floor andtrunc are members of theMath group generic. As an S4generic,trunc has only one argument.

round andsignif are members of theMath2 group generic.

Warning

The realities of computer arithmetic can cause unexpected results,especially withfloor andceiling. For example, we‘know’ thatfloor(log(x, base = 8)) forx = 8 is1, but0 has been seen on anR platform. It isnormally necessary to use a tolerance.

Rounding to decimal digits in binary arithmetic is non-trivial (whendigits != 0) and may be surprising. Be aware that most decimalfractions arenot exactly representable in binary double precision.InR 4.0.0, the algorithm forround(x, d), ford > 0, hasbeen improved tomeasure and round “to nearest even”,contrary to earlier versions ofR (or also tosprintf()orformat() based rounding).

References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)The New S Language. Wadsworth & Brooks/Cole.

The ISO/IEC/IEEE 60559:2011 standard is available for money fromhttps://www.iso.org.

The IEEE 754:2008 standard is more openly documented, e.g, athttps://en.wikipedia.org/wiki/IEEE_754.

See Also

as.integer.Packageround'sroundX() for severalversions or implementations of rounding, including some previous and thecurrentR version (asversion = "3d.C").

Examples

round(.5 + -2:4) # IEEE / IEC rounding: -2  0  0  2  2  4  4## (this is *good* behaviour -- do *NOT* report it as bug !)( x1 <- seq(-2, 4, by = .5) )round(x1) #-- IEEE / IEC rounding !x1[trunc(x1) != floor(x1)]x1[round(x1) != floor(x1 + .5)](non.int <- ceiling(x1) != floor(x1))x2 <- pi * 100^(-1:3)round(x2, 3)signif(x2, 3)

[Packagebase version 4.6.0Index]

[8]ページ先頭

©2009-2025 Movatter.jp