Я создал пример, который вы можете использовать повторно, выполнив:
df <- structure(list(c("EUR", "EUR", "USD", "CAD"), c(1654, 68797,
6546, 736), c("CNY", "HKD", "HKD", "HKD"), c(6876, 63, 687, 354
)), .Names = c("currency1", "amount1", "currency2", "amount2"
), class = "data.frame", row.names = c(NA, -4L))
Так что быстрый способ сделать это, , если у вас есть уникальные валюты в taux_change_vers_EUR
, используетсяmerge
для каждого интересующего вас столбца в df
, который вы можете даже просмотреть.
cur1.rate <- merge(df, taux_change_vers_EUR, by.x="currency1", by.y="V1", all.y=FALSE)
cur2.rate <- merge(cur1.rate, taux_change_vers_EUR, by.x="currency2", by.y="V1", all.y=FALSE)
result <- cur2.rate
result$amount1.eur <- result$amount1*result$V2.x
result$amount2.eur <- result$amount2*result$V2.y
result
currency2 currency1 amount1 amount2 V2.x V2.y amount1.eur amount2.eur
1 CNY EUR 1654 6876 1.00000 6.92256 1654.000 47599.5226
2 HKD CAD 736 354 1.48836 7.83296 1095.433 2772.8678
3 HKD EUR 68797 63 1.00000 7.83296 68797.000 493.4765
4 HKD USD 6546 687 1.14720 7.83296 7509.571 5381.2435