money representation in R

I would like to know how can I work with money with R. It means, do arithmetic, print well formatted numbers and etc.

For example I have some values

1.222.333,37 1.223.444,88 

I could translate it to numeric and round it, removing the cents, but there isn't a better pattern to work with? I did try the format method, something like:

format(141103177058,digits=3,small.interval=3,decimal.mark='.',small.mark=',') 

but without success. any tip or ideas?

6

3 Answers

The scales package has a function for this: dollar_format()

install.packages("scales") library(scales) muchoBucks <- 15558.5985121 dollar_format()(muchoBucks) [1] "$15,558.60" 

What about this one:

printCurrency <- function(value, currency.sym="$", digits=2, sep=",", decimal=".") { paste( currency.sym, formatC(value, format = "f", big.mark = sep, digits=digits, decimal.mark=decimal), sep="" ) } printCurrency(123123.334) 
1

Suppose we have two specific character values (currency):

s1 <- "1.222.333,37" s2 <- "1.223.444,88" 

First of all we want R to display numeric values with proper number of digits:

# controls representation of numeric values options(digits=10) 

Converting currency to numeric can be implemented like this:

# where s is character moneyToDouble <- function(s){ as.double(gsub("[,]", ".", gsub("[.]", "", s))) } x <- moneyToDouble(s1) + moneyToDouble(s2) x 

Printing numeric as currency:

# where x is numeric printMoney <- function(x){ format(x, digits=10, nsmall=2, decimal.mark=",", big.mark=".") } printMoney(x) 
2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like