smartround {cooltools} | R Documentation |

## Round a vector of floating-point values while preserving their sum

### Description

Rounds the values in a vector up and down, preserving the sum of the vector and minimizing the total rounding error under this condition. An example where this is useful is when rounding a vector of percentages, where the total should add up to 100 percent.

### Usage

```
smartround(x, digits = 0)
```

### Arguments

`x` |
vector of values |

`digits` |
optional non-negative integer specifying the number of digits of the rounded numbers |

### Value

Returns a vector of rounded values of the same length as `x`

.

### Author(s)

Danail Obreschkow

### Examples

```
x = runif(5)
x = x/sum(x)*100
print(x)
print(sum(x))
y = smartround(x)
print(y)
print(sum(y))
y2 = smartround(x,2)
print(y2)
print(sum(y2))
```

[Package

*cooltools*version 2.4 Index]