ceiling
Zaokrouhlování čísel
Round {base} | Dokumentace R v češtině |
Popis
ceiling
vezme jeden číselný výraz x
a vrátí číselný vektor obsahující nejmenší integery ne menší než korespondující elementy x
.
floor
vezme jeden číselný výraz x
a vrátí číselný vektor obsahující největší integery ne větší než korespondující elementy x
.
trunc
vezme jeden číselný výraz x
a vrátí číselný vektor obsahující integery vzniklé skrácením hodnot v x
k 0
(bez zaokrouhlení).
round
zaokrouhlí hodnoty prvního výrazu na určitý počet desetinných míst (předvolené 0).
signif
zaokrouhlí hodnoty prvního výrazu na určitý počet signifikantních číslic.
Použití
ceiling(x)
floor(x)
trunc(x, ...)
round(x, digits = 0)
signif(x, digits = 6)
Argumenty
x |
číselný vektor. Anebo, pro |
digits |
integer indikující počet desetinných míst ( |
... |
argumenty, které se předají metodám. |
Detaily
Tyto jsou generické funkce: methody pro ně můžou být definovány individuálně nebo přes Math
skupinové generika.
Všimněte si, že pro zaokrouhlení 5 se očekává použití IEC 60559 standardu - ‘jeď k párnému číslu’. Proto round(0.5)
je 0
a round(-1.5)
je -2
. Je to však závislé na službách OS a dále chyba reprezentace (protože např. 0.15
není reprezentována přesně, pravidlo zaokrouhlení se vztahuje na reprezentované číslo a nikoliv na tištěné číslo, takže round(0.15, 1)
může být buď 0.1
nebo 0.2
).
Zaokrouhlení na záporný počet číslic znamená zaokrouhlení na mocninu desítky, takže například round(x, digits = -2)
zaokrouhlí na nejbližší sto.
Pro signif
jsou uznané číslice
1...22
, a nechybějící hodnoty jsou zaokrouhleny na nejbližší integer v tomto rozsahu. Komplexní čísla jsou zaokrouhlena, aby se zachoval zadaný počet číslic ve větším z komponentů. Každý element vektoru je na rozdíl od tisku zaokrouhlen jednotlivě.
Všude se jedná o primitivní funkce.
S4 metody
Jedná se o všechny (interně) S4 generika.
ceiling
, floor
a trunc
jsou členy skupinového generika Math
. Jako S4 generikum, trunc
má jenom jeden argument.
round
a signif
jsou členy skupinového generika Math2
.
Varování
Realita počítačové aritmetiky může způsobit neočekávané výsledky, zejména s floor
a ceiling
. Například ‚víme’, že floor(log(x, base = 8))
pro x = 8
je 1
, ale 0
byl viděn na platforme R. Obvykle je nutné použít toleranci.
Reference
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
Viz také
Příklady
round(.5 + -2:4)
# zaokrouhlování IEEE: -2 0 0 2 2 4 4 ( x1 <- seq(-2, 4, by = .5) ) round(x1)
#-- zaokrouhlování IEEE ! 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)