用于在R中存储货币值和货币的数据类型或结构是什么?

时间:2014-09-24 15:01:29

标签: r currency

我必须在R中用不同货币的货币值进行一些计算(例如10.02 DOL,00.12 CAD,123.32 EUR,......)。您在R中存储价值和相应货币的最佳方式是什么?

目前我的数据框中包含两列“Value”和“ReferenceCurrency”等。是否有合理的方法将两列存储在一起?

我不是想要一种方法将其格式化为输出,而是以一种我可以进行货币转换和其他操作的方式存储它,其值取决于它所在的货币。

1 个答案:

答案 0 :(得分:1)

match - 函数提供了一个数字索引,可用于从向量中提取值:

> convert <- data.frame( country = c("USD", "euro", "HKD"), fact= c( 1.4, 1, 8)  )
> convert
  country fact
1     USD  1.4
2    euro  1.0
3     HKD  8.0
> dat <- data.frame( transact = LETTERS[1:10], curr = sample(1:10, 10) , country=sample( c("USD", "euro", "HKD"), 10 , rep=TRUE) )
> dat
   transact curr country
1         A    4     USD
2         B    1    euro
3         C    3     USD
4         D    6    euro
5         E    2     USD
6         F    9    euro
7         G    5     USD
8         H    8    euro
9         I   10     USD
10        J    7     HKD
> dat$EUequiv <- dat$curr/convert$fact[ match(dat$country, convert$country)]
> dat
   transact curr country  EUequiv
1         A    4     USD 2.857143
2         B    1    euro 1.000000
3         C    3     USD 2.142857
4         D    6    euro 6.000000
5         E    2     USD 1.428571
6         F    9    euro 9.000000
7         G    5     USD 3.571429
8         H    8    euro 8.000000
9         I   10     USD 7.142857
10        J    7     HKD 0.875000