Skip to contents

Applies a rounding or transformation function to every numeric column in a data frame, leaving non-numeric columns (factor, character, etc.) unchanged.

Usage

round_dataframe(df, digits = 0, type = "round")

Arguments

df

A data frame containing a mix of numeric and non-numeric columns.

digits

Integer number of decimal places. Only used with type = "round" and type = "tenth". Default is 0.

type

Character string specifying the transformation to apply to numeric columns:

"round"

Round to digits decimal places using round() (default).

"ceiling"

Round up to the nearest integer using ceiling().

"floor"

Round down to the nearest integer using floor().

"tenth"

Divide each value by 10 then round to digits decimal places — useful for rescaling values that were multiplied by 10 (e.g. converting tenths back to units).

Value

A data frame with the same structure as df where all numeric columns have been rounded or transformed according to type.

Examples

round_dataframe(df = change_data_type(df = mtcars, type = "factor"), digits = 0)
#>                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#> Mazda RX4             21   6   160 110  3.9  2.62 16.46  0  1    4    4
#> Mazda RX4 Wag         21   6   160 110  3.9 2.875 17.02  0  1    4    4
#> Datsun 710          22.8   4   108  93 3.85  2.32 18.61  1  1    4    1
#> Hornet 4 Drive      21.4   6   258 110 3.08 3.215 19.44  1  0    3    1
#> Hornet Sportabout   18.7   8   360 175 3.15  3.44 17.02  0  0    3    2
#> Valiant             18.1   6   225 105 2.76  3.46 20.22  1  0    3    1
#> Duster 360          14.3   8   360 245 3.21  3.57 15.84  0  0    3    4
#> Merc 240D           24.4   4 146.7  62 3.69  3.19    20  1  0    4    2
#> Merc 230            22.8   4 140.8  95 3.92  3.15  22.9  1  0    4    2
#> Merc 280            19.2   6 167.6 123 3.92  3.44  18.3  1  0    4    4
#> Merc 280C           17.8   6 167.6 123 3.92  3.44  18.9  1  0    4    4
#> Merc 450SE          16.4   8 275.8 180 3.07  4.07  17.4  0  0    3    3
#> Merc 450SL          17.3   8 275.8 180 3.07  3.73  17.6  0  0    3    3
#> Merc 450SLC         15.2   8 275.8 180 3.07  3.78    18  0  0    3    3
#> Cadillac Fleetwood  10.4   8   472 205 2.93  5.25 17.98  0  0    3    4
#> Lincoln Continental 10.4   8   460 215    3 5.424 17.82  0  0    3    4
#> Chrysler Imperial   14.7   8   440 230 3.23 5.345 17.42  0  0    3    4
#> Fiat 128            32.4   4  78.7  66 4.08   2.2 19.47  1  1    4    1
#> Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
#> Toyota Corolla      33.9   4  71.1  65 4.22 1.835  19.9  1  1    4    1
#> Toyota Corona       21.5   4 120.1  97  3.7 2.465 20.01  1  0    3    1
#> Dodge Challenger    15.5   8   318 150 2.76  3.52 16.87  0  0    3    2
#> AMC Javelin         15.2   8   304 150 3.15 3.435  17.3  0  0    3    2
#> Camaro Z28          13.3   8   350 245 3.73  3.84 15.41  0  0    3    4
#> Pontiac Firebird    19.2   8   400 175 3.08 3.845 17.05  0  0    3    2
#> Fiat X1-9           27.3   4    79  66 4.08 1.935  18.9  1  1    4    1
#> Porsche 914-2         26   4 120.3  91 4.43  2.14  16.7  0  1    5    2
#> Lotus Europa        30.4   4  95.1 113 3.77 1.513  16.9  1  1    5    2
#> Ford Pantera L      15.8   8   351 264 4.22  3.17  14.5  0  1    5    4
#> Ferrari Dino        19.7   6   145 175 3.62  2.77  15.5  0  1    5    6
#> Maserati Bora         15   8   301 335 3.54  3.57  14.6  0  1    5    8
#> Volvo 142E          21.4   4   121 109 4.11  2.78  18.6  1  1    4    2
round_dataframe(df = change_data_type(df = mtcars, type = "character"), digits = 0)
#>                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#> Mazda RX4             21   6   160 110  3.9  2.62 16.46  0  1    4    4
#> Mazda RX4 Wag         21   6   160 110  3.9 2.875 17.02  0  1    4    4
#> Datsun 710          22.8   4   108  93 3.85  2.32 18.61  1  1    4    1
#> Hornet 4 Drive      21.4   6   258 110 3.08 3.215 19.44  1  0    3    1
#> Hornet Sportabout   18.7   8   360 175 3.15  3.44 17.02  0  0    3    2
#> Valiant             18.1   6   225 105 2.76  3.46 20.22  1  0    3    1
#> Duster 360          14.3   8   360 245 3.21  3.57 15.84  0  0    3    4
#> Merc 240D           24.4   4 146.7  62 3.69  3.19    20  1  0    4    2
#> Merc 230            22.8   4 140.8  95 3.92  3.15  22.9  1  0    4    2
#> Merc 280            19.2   6 167.6 123 3.92  3.44  18.3  1  0    4    4
#> Merc 280C           17.8   6 167.6 123 3.92  3.44  18.9  1  0    4    4
#> Merc 450SE          16.4   8 275.8 180 3.07  4.07  17.4  0  0    3    3
#> Merc 450SL          17.3   8 275.8 180 3.07  3.73  17.6  0  0    3    3
#> Merc 450SLC         15.2   8 275.8 180 3.07  3.78    18  0  0    3    3
#> Cadillac Fleetwood  10.4   8   472 205 2.93  5.25 17.98  0  0    3    4
#> Lincoln Continental 10.4   8   460 215    3 5.424 17.82  0  0    3    4
#> Chrysler Imperial   14.7   8   440 230 3.23 5.345 17.42  0  0    3    4
#> Fiat 128            32.4   4  78.7  66 4.08   2.2 19.47  1  1    4    1
#> Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
#> Toyota Corolla      33.9   4  71.1  65 4.22 1.835  19.9  1  1    4    1
#> Toyota Corona       21.5   4 120.1  97  3.7 2.465 20.01  1  0    3    1
#> Dodge Challenger    15.5   8   318 150 2.76  3.52 16.87  0  0    3    2
#> AMC Javelin         15.2   8   304 150 3.15 3.435  17.3  0  0    3    2
#> Camaro Z28          13.3   8   350 245 3.73  3.84 15.41  0  0    3    4
#> Pontiac Firebird    19.2   8   400 175 3.08 3.845 17.05  0  0    3    2
#> Fiat X1-9           27.3   4    79  66 4.08 1.935  18.9  1  1    4    1
#> Porsche 914-2         26   4 120.3  91 4.43  2.14  16.7  0  1    5    2
#> Lotus Europa        30.4   4  95.1 113 3.77 1.513  16.9  1  1    5    2
#> Ford Pantera L      15.8   8   351 264 4.22  3.17  14.5  0  1    5    4
#> Ferrari Dino        19.7   6   145 175 3.62  2.77  15.5  0  1    5    6
#> Maserati Bora         15   8   301 335 3.54  3.57  14.6  0  1    5    8
#> Volvo 142E          21.4   4   121 109 4.11  2.78  18.6  1  1    4    2
round_dataframe(df = mtcars, digits = 0)
#>                     mpg cyl disp  hp drat wt qsec vs am gear carb
#> Mazda RX4            21   6  160 110    4  3   16  0  1    4    4
#> Mazda RX4 Wag        21   6  160 110    4  3   17  0  1    4    4
#> Datsun 710           23   4  108  93    4  2   19  1  1    4    1
#> Hornet 4 Drive       21   6  258 110    3  3   19  1  0    3    1
#> Hornet Sportabout    19   8  360 175    3  3   17  0  0    3    2
#> Valiant              18   6  225 105    3  3   20  1  0    3    1
#> Duster 360           14   8  360 245    3  4   16  0  0    3    4
#> Merc 240D            24   4  147  62    4  3   20  1  0    4    2
#> Merc 230             23   4  141  95    4  3   23  1  0    4    2
#> Merc 280             19   6  168 123    4  3   18  1  0    4    4
#> Merc 280C            18   6  168 123    4  3   19  1  0    4    4
#> Merc 450SE           16   8  276 180    3  4   17  0  0    3    3
#> Merc 450SL           17   8  276 180    3  4   18  0  0    3    3
#> Merc 450SLC          15   8  276 180    3  4   18  0  0    3    3
#> Cadillac Fleetwood   10   8  472 205    3  5   18  0  0    3    4
#> Lincoln Continental  10   8  460 215    3  5   18  0  0    3    4
#> Chrysler Imperial    15   8  440 230    3  5   17  0  0    3    4
#> Fiat 128             32   4   79  66    4  2   19  1  1    4    1
#> Honda Civic          30   4   76  52    5  2   19  1  1    4    2
#> Toyota Corolla       34   4   71  65    4  2   20  1  1    4    1
#> Toyota Corona        22   4  120  97    4  2   20  1  0    3    1
#> Dodge Challenger     16   8  318 150    3  4   17  0  0    3    2
#> AMC Javelin          15   8  304 150    3  3   17  0  0    3    2
#> Camaro Z28           13   8  350 245    4  4   15  0  0    3    4
#> Pontiac Firebird     19   8  400 175    3  4   17  0  0    3    2
#> Fiat X1-9            27   4   79  66    4  2   19  1  1    4    1
#> Porsche 914-2        26   4  120  91    4  2   17  0  1    5    2
#> Lotus Europa         30   4   95 113    4  2   17  1  1    5    2
#> Ford Pantera L       16   8  351 264    4  3   14  0  1    5    4
#> Ferrari Dino         20   6  145 175    4  3   16  0  1    5    6
#> Maserati Bora        15   8  301 335    4  4   15  0  1    5    8
#> Volvo 142E           21   4  121 109    4  3   19  1  1    4    2
round_dataframe(df = mtcars, digits = 0, type = "ceiling")
#>                     mpg cyl disp  hp drat wt qsec vs am gear carb
#> Mazda RX4            21   6  160 110    4  3   17  0  1    4    4
#> Mazda RX4 Wag        21   6  160 110    4  3   18  0  1    4    4
#> Datsun 710           23   4  108  93    4  3   19  1  1    4    1
#> Hornet 4 Drive       22   6  258 110    4  4   20  1  0    3    1
#> Hornet Sportabout    19   8  360 175    4  4   18  0  0    3    2
#> Valiant              19   6  225 105    3  4   21  1  0    3    1
#> Duster 360           15   8  360 245    4  4   16  0  0    3    4
#> Merc 240D            25   4  147  62    4  4   20  1  0    4    2
#> Merc 230             23   4  141  95    4  4   23  1  0    4    2
#> Merc 280             20   6  168 123    4  4   19  1  0    4    4
#> Merc 280C            18   6  168 123    4  4   19  1  0    4    4
#> Merc 450SE           17   8  276 180    4  5   18  0  0    3    3
#> Merc 450SL           18   8  276 180    4  4   18  0  0    3    3
#> Merc 450SLC          16   8  276 180    4  4   18  0  0    3    3
#> Cadillac Fleetwood   11   8  472 205    3  6   18  0  0    3    4
#> Lincoln Continental  11   8  460 215    3  6   18  0  0    3    4
#> Chrysler Imperial    15   8  440 230    4  6   18  0  0    3    4
#> Fiat 128             33   4   79  66    5  3   20  1  1    4    1
#> Honda Civic          31   4   76  52    5  2   19  1  1    4    2
#> Toyota Corolla       34   4   72  65    5  2   20  1  1    4    1
#> Toyota Corona        22   4  121  97    4  3   21  1  0    3    1
#> Dodge Challenger     16   8  318 150    3  4   17  0  0    3    2
#> AMC Javelin          16   8  304 150    4  4   18  0  0    3    2
#> Camaro Z28           14   8  350 245    4  4   16  0  0    3    4
#> Pontiac Firebird     20   8  400 175    4  4   18  0  0    3    2
#> Fiat X1-9            28   4   79  66    5  2   19  1  1    4    1
#> Porsche 914-2        26   4  121  91    5  3   17  0  1    5    2
#> Lotus Europa         31   4   96 113    4  2   17  1  1    5    2
#> Ford Pantera L       16   8  351 264    5  4   15  0  1    5    4
#> Ferrari Dino         20   6  145 175    4  3   16  0  1    5    6
#> Maserati Bora        15   8  301 335    4  4   15  0  1    5    8
#> Volvo 142E           22   4  121 109    5  3   19  1  1    4    2
round_dataframe(df = mtcars, digits = 0, type = "floor")
#>                     mpg cyl disp  hp drat wt qsec vs am gear carb
#> Mazda RX4            21   6  160 110    3  2   16  0  1    4    4
#> Mazda RX4 Wag        21   6  160 110    3  2   17  0  1    4    4
#> Datsun 710           22   4  108  93    3  2   18  1  1    4    1
#> Hornet 4 Drive       21   6  258 110    3  3   19  1  0    3    1
#> Hornet Sportabout    18   8  360 175    3  3   17  0  0    3    2
#> Valiant              18   6  225 105    2  3   20  1  0    3    1
#> Duster 360           14   8  360 245    3  3   15  0  0    3    4
#> Merc 240D            24   4  146  62    3  3   20  1  0    4    2
#> Merc 230             22   4  140  95    3  3   22  1  0    4    2
#> Merc 280             19   6  167 123    3  3   18  1  0    4    4
#> Merc 280C            17   6  167 123    3  3   18  1  0    4    4
#> Merc 450SE           16   8  275 180    3  4   17  0  0    3    3
#> Merc 450SL           17   8  275 180    3  3   17  0  0    3    3
#> Merc 450SLC          15   8  275 180    3  3   18  0  0    3    3
#> Cadillac Fleetwood   10   8  472 205    2  5   17  0  0    3    4
#> Lincoln Continental  10   8  460 215    3  5   17  0  0    3    4
#> Chrysler Imperial    14   8  440 230    3  5   17  0  0    3    4
#> Fiat 128             32   4   78  66    4  2   19  1  1    4    1
#> Honda Civic          30   4   75  52    4  1   18  1  1    4    2
#> Toyota Corolla       33   4   71  65    4  1   19  1  1    4    1
#> Toyota Corona        21   4  120  97    3  2   20  1  0    3    1
#> Dodge Challenger     15   8  318 150    2  3   16  0  0    3    2
#> AMC Javelin          15   8  304 150    3  3   17  0  0    3    2
#> Camaro Z28           13   8  350 245    3  3   15  0  0    3    4
#> Pontiac Firebird     19   8  400 175    3  3   17  0  0    3    2
#> Fiat X1-9            27   4   79  66    4  1   18  1  1    4    1
#> Porsche 914-2        26   4  120  91    4  2   16  0  1    5    2
#> Lotus Europa         30   4   95 113    3  1   16  1  1    5    2
#> Ford Pantera L       15   8  351 264    4  3   14  0  1    5    4
#> Ferrari Dino         19   6  145 175    3  2   15  0  1    5    6
#> Maserati Bora        15   8  301 335    3  3   14  0  1    5    8
#> Volvo 142E           21   4  121 109    4  2   18  1  1    4    2
round_dataframe(df = mtcars * 100, digits = 2, type = "tenth")
#>                     mpg cyl disp   hp drat    wt  qsec vs am gear carb
#> Mazda RX4           210  60 1600 1100 39.0 26.20 164.6  0 10   40   40
#> Mazda RX4 Wag       210  60 1600 1100 39.0 28.75 170.2  0 10   40   40
#> Datsun 710          228  40 1080  930 38.5 23.20 186.1 10 10   40   10
#> Hornet 4 Drive      214  60 2580 1100 30.8 32.15 194.4 10  0   30   10
#> Hornet Sportabout   187  80 3600 1750 31.5 34.40 170.2  0  0   30   20
#> Valiant             181  60 2250 1050 27.6 34.60 202.2 10  0   30   10
#> Duster 360          143  80 3600 2450 32.1 35.70 158.4  0  0   30   40
#> Merc 240D           244  40 1467  620 36.9 31.90 200.0 10  0   40   20
#> Merc 230            228  40 1408  950 39.2 31.50 229.0 10  0   40   20
#> Merc 280            192  60 1676 1230 39.2 34.40 183.0 10  0   40   40
#> Merc 280C           178  60 1676 1230 39.2 34.40 189.0 10  0   40   40
#> Merc 450SE          164  80 2758 1800 30.7 40.70 174.0  0  0   30   30
#> Merc 450SL          173  80 2758 1800 30.7 37.30 176.0  0  0   30   30
#> Merc 450SLC         152  80 2758 1800 30.7 37.80 180.0  0  0   30   30
#> Cadillac Fleetwood  104  80 4720 2050 29.3 52.50 179.8  0  0   30   40
#> Lincoln Continental 104  80 4600 2150 30.0 54.24 178.2  0  0   30   40
#> Chrysler Imperial   147  80 4400 2300 32.3 53.45 174.2  0  0   30   40
#> Fiat 128            324  40  787  660 40.8 22.00 194.7 10 10   40   10
#> Honda Civic         304  40  757  520 49.3 16.15 185.2 10 10   40   20
#> Toyota Corolla      339  40  711  650 42.2 18.35 199.0 10 10   40   10
#> Toyota Corona       215  40 1201  970 37.0 24.65 200.1 10  0   30   10
#> Dodge Challenger    155  80 3180 1500 27.6 35.20 168.7  0  0   30   20
#> AMC Javelin         152  80 3040 1500 31.5 34.35 173.0  0  0   30   20
#> Camaro Z28          133  80 3500 2450 37.3 38.40 154.1  0  0   30   40
#> Pontiac Firebird    192  80 4000 1750 30.8 38.45 170.5  0  0   30   20
#> Fiat X1-9           273  40  790  660 40.8 19.35 189.0 10 10   40   10
#> Porsche 914-2       260  40 1203  910 44.3 21.40 167.0  0 10   50   20
#> Lotus Europa        304  40  951 1130 37.7 15.13 169.0 10 10   50   20
#> Ford Pantera L      158  80 3510 2640 42.2 31.70 145.0  0 10   50   40
#> Ferrari Dino        197  60 1450 1750 36.2 27.70 155.0  0 10   50   60
#> Maserati Bora       150  80 3010 3350 35.4 35.70 146.0  0 10   50   80
#> Volvo 142E          214  40 1210 1090 41.1 27.80 186.0 10 10   40   20