在R中将一种货币转换为另一种货币的函数 [英] Function to convert from one currency to another currency in R

查看:36
本文介绍了在R中将一种货币转换为另一种货币的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给定以下条件,从1美元到

  • 欧元
  • 比索
  • 法郎
  • 澳元
  • 新西兰元
  • 加元

如何编写从一种货币转换为另一种货币的函数?

该函数应该是这样工作的-amount是数字,fromto是字符串:

currency(amount = 1, from = 'usd', to = 'euro')
## [1] 8.7

我唯一能想到的事情就是编写大量的if语句,但对于所有这些可能的货币兑换/组合来说,这似乎太乏味了。

我还在考虑在函数中创建一个命名向量,如下所示:<[2-3],等等,以显示从1美元到这些货币的转换率。但仍然不确定如何编写一个函数来说明所有这些货币转换(美元、欧元、比索、法郎、奥地利元、新西兰元、加元)。

推荐答案

这里是一个函数,它确实存在轻微的舍入误差,但只需要更高分辨率的数字来减少这种误差-我的值来自谷歌搜索的每种货币10000美元。您还可以查看从Web上获取价值的包(rvest?)如果要保持值自动更新,请执行以下操作。

currencyCon <- function(x, from = "USD", to = "EUR"){
  # assign values: 1 usd in each currency 
  values <- c(1.000000, 0.927985, 0.810100, 107.624500)
  # names attribute 
  names(values) <- c("USD", "EUR", "GBP", "YEN")
  # calculate (convert from into USD, and divide to)
  values[to] / (values[from] / x)
}

# Testing 
currencyCon(1, "USD", "EUR")
currencyCon(1, "EUR", "EUR")
currencyCon(1, "GBP", "YEN")

这将返回

 > currencyCon(1, "USD", "EUR")
 EUR 
 0.927985
 > currencyCon(1, "EUR", "EUR")
 EUR 
 1 
 > currencyCon(1, "GBP", "YEN")
 YEN 
 132.8534

这篇关于在R中将一种货币转换为另一种货币的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆