r - R中将一种货币转换为另一种货币的函数
问题描述
鉴于以下情况,从 1 美元到
- 欧元
- 比索
- 法郎
- 澳元
- 新西兰元
- 加元
我将如何编写一个函数来从一种货币转换为另一种货币?
该函数应该像这样工作 -amount
是数字,from
并且to
是字符串:
currency(amount = 1, from = 'usd', to = 'euro')
## [1] 8.7
我唯一能想到的就是写大量的 if 语句,但这对于所有这些可能的货币转换/组合来说似乎太乏味了。
我也在考虑在我的函数中创建一个命名向量,如下所示:c('euro' = 0.93, 'peso' = 24.71, 'franc' = 0.98, ...)
等等以显示从 1 美元到这些货币的转换率。但仍然不确定如何编写一个函数来解释所有这些货币转换(美元、欧元、比索、法郎、奥地利元、新西兰元、加元)。
解决方案
这是一个函数,它确实存在轻微的舍入误差,但只需要更高分辨率的数字来减少该误差 - 我的值来自谷歌搜索每种货币 10000 美元。如果您想保持值自动更新,您还可以查看从网络上抓取值的包(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
推荐阅读
- python - 图像不会在破折号中加载 - python
- wpf - 如何在自定义 DataGrid 上为 DataGridRow 设置样式和模板
- linux - 使用一个命令行计算 ubuntu 中位于 /etc 的最后一个文件中的行数
- swift - SwiftUI 从表单中删除项目导致崩溃
- python - ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all() Python Sagemaker XGBoost
- visual-c++ - 将 int 数字转换为 char(例如:从 1 到 '1')
- node.js - 从 Nodejs 到 Google App Engine 的 GET/POST 请求不起作用
- javascript - 如何为js中的每张照片制作不同的计数器?
- image - 无法在 codeigniter 中设置新的图像名称
- c# - 迭代代表类型的语法