【发布时间】:2022-06-15 23:34:51
【问题描述】:
我有一个数据表,我想对其应用一个函数,即来自priceR 的historical_exchange rates 函数。我已经想出了如何在我的数据表中应用这个函数,但是这个函数会吐出两个变量。我只想从函数中获取具体的汇率。因此,在Par_value_EUR 列中,我得到了发行日期的汇率。对于第一行,这将是 0.108031
我的数据表如下:
ISIN TR.FiCurrency TR.FiIssueDate Par_value_EUR
1: XS1231261907 SEK 2015-05-12 NA
2: XS1231286995 EUR 2015-05-12 NA
3: XS1231416287 HKD 2015-05-19 NA
4: XS1232143310 EUR 2015-05-13 NA
5: XS1232309226 HKD 2015-05-20 NA
6: XS1232498011 USD 2015-05-27 NA
structure(list(ISIN = c("XS1231261907", "XS1231286995", "XS1231416287",
"XS1232143310", "XS1232309226", "XS1232498011"), TR.FiCurrency = c("SEK",
"EUR", "HKD", "EUR", "HKD", "USD"), TR.FiIssueDate = structure(c(16567,
16567, 16574, 16568, 16575, 16582), class = "Date"), Par_value_EUR = c(NA,
NA, NA, NA, NA, NA)), row.names = c(NA, -6L), class = c("data.table",
"data.frame"), .internal.selfref = <pointer: 0x7fc85800cee0>)
我正在使用 apply 将这个函数应用于我的数据表中的行:
par_values_test$Par_value_EUR <- apply(par_values_test[,c('TR.FiCurrency','TR.FiIssueDate')], 1,
function(y) historical_exchange_rates(y['TR.FiCurrency'], "EUR", y['TR.FiIssueDate'],y['TR.FiIssueDate'] ) )
结果如下:
ISIN TR.FiCurrency TR.FiIssueDate Par_value_EUR
1: XS1231261907 SEK 2015-05-12 <data.frame[1x2]>
2: XS1231286995 EUR 2015-05-12 <data.frame[1x2]>
3: XS1231416287 HKD 2015-05-19 <data.frame[1x2]>
4: XS1232143310 EUR 2015-05-13 <data.frame[1x2]>
5: XS1232309226 HKD 2015-05-20 <data.frame[1x2]>
6: XS1232498011 USD 2015-05-27 <data.frame[1x2]>
如您所见,这会在 Par_value_EUR 列中放置一个新数据框,而我只想要该数据框中的第二个元素。
【问题讨论】: