I just got to know that R or Python have different ways of defining the round function compared to Excel.
Statistical argument aside, my business users are primarily Excel users. And this has led to some confusion as the numbers generated by R/Python scripts can differ due to this rounding convention.
It seems to me that Excel always ’round up’ when it needs to calculate numbers like 1.5, 2.5, 3.5, etc while R/Python will round to the nearest even number instead.
Potentially there’re other assumptions I’m not aware of which differentiate both Excel and R/Python.
Is there any way to implement the exact round function from Excel in R?
Based on the observed behaviour that
round in Excel rounds away from zero for numbers ending in 0.5, it could be replicated in R with:
> x <- c(-1.5, -0.5, 0.5, 1.5, 2.5, 3.5) > round(x+2*sign(x)*.Machine$double.eps) #  -2 -1 1 2 3 4