7

Rでお金を扱う方法を知りたいです。つまり、算術を行ったり、適切にフォーマットされた数値を出力したりします。

たとえば、私はいくつかの値を持っています

1.222.333,37 
1.223.444,88

セントを削除して数値に変換し、丸めることができますが、より良いパターンはありませんか? 次のようなフォーマット方法を試しました:

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

しかし、成功しませんでした。ヒントやアイデアはありますか?

4

3 に答える 3

8

scales パッケージには、このための関数があります: dollar_format()

install.packages("scales")
library(scales)

muchoBucks <- 15558.5985121
dollar_format()(muchoBucks)

[1] "$15,558.60"
于 2016-03-29T21:36:20.193 に答える
5

これはどうですか:

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)
于 2014-05-23T16:11:06.967 に答える
4

2 つの特定の文字値 (通貨) があるとします。

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

まず第一に、R に適切な桁数の数値を表示させたい:

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

通貨から数値への変換は、次のように実装できます。

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

x <- moneyToDouble(s1) + moneyToDouble(s2)
x    

数値を通貨として印刷:

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

printMoney(x)
于 2012-12-25T09:17:38.617 に答える