Rounding numbers in R
R provides several functions for rounding decimal numbers. In this tutorial you will learn the usage of the different functions to round values in R, this is, round
, ceiling
, floor
, trunc
and signif
functions.
The round
function
The most common function to round values in R is the round
command. By default, this function will round the decimals to the nearest integer, except when rounding off a 5, where the value will be rounded to the nearest even integer.
x <- c(2, 4.5, 5.6534, 9.18, -1.5, -8.35, -10.78)
round(x)
2 4 6 9 -2 -8 -11
The round
function not always rounds to the nearest whole number, as it takes the rule of: āgo to the even digitā. This implies, for instance, that round(4.5)
is 4 but round(5.5)
is 6.
However, the main use case for this function is to round values to a specific number of decimal places with an argument named digits
. For instance, if you want to round to two decimal places you can pass a 2 to digits
:
x <- c(2, 4.5, 5.6534, 9.18, -1.5, -8.35, -10.78)
round(x, digits = 2)
2.00 4.50 5.65 9.18 -1.50 -8.35 -10.78
Note that you can also input negative numbers to digits
. In this scenario the numbers will be rounded to a power of ten, meaning that -1 will round the value to the nearest ten, -2 will round to the nearest hundred and so on.
x <- c(2, 4.5, 5.6534, 9.18, -1.5, -8.35, -10.78)
round(x, digits = -1)
0 0 10 10 0 -10 -10
The floor
function
The floor
function will round down the values to the largest integer not greater than the value itself. See the example below for some clarification.
x <- c(2, 4.5, 5.6534, 9.18, -1.5, -8.35, -10.78)
floor(x)
2 4 5 9 -2 -9 -11
The ceiling
function
The opposite function for floor
is ceiling
, which will round up the values to the smallest integer not less than the value itself.
x <- c(2, 4.5, 5.6534, 9.18, -1.5, -8.35, -10.78)
ceiling(x)
2 5 6 10 -1 -8 -10
The trunc
function
The trunc
function is a rounding function that removes the decimal places, returning only the integers of the values.
x <- c(2, 4.5, 5.6534, 9.18, -1.5, -8.35, -10.78)
trunc(x)
2 4 5 9 -1 -8 -10
The signif
function
The last function for rounding numbers in R is signif
, which will round the values to the specified number of significant digits (6 by default).
x <- c(2, 4.5, 5.6534, 9.18, -1.5, -8.35, -10.78)
signif(x)
2.0000 4.5000 5.6534 9.1800 -1.5000 -8.3500 -10.7800
This function also allow you to specify the desired number of significant digits with digits
argument.
x <- c(2, 4.5, 5.6534, 9.18, -1.5, -8.35, -10.78)
signif(x, digits = 3)
2.00 4.50 5.65 9.18 -1.50 -8.35 -10.80