トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン 印刷

getFX()

auditR

[quantmod]

為替レートを取得する

Rの{quantmod}パッケージを使うと、為替レートを取得することができる。

install.packages("quantmod")
library(quantmod)
getFX("USD/JPY", from = Sys.Date()-7)   #auto.assign = TRUEがデフォルトだが、通貨名しか返さない。

とすれば、過去1週間分の対ドル円レートが得られる。

> getFX("USD/JPY", from=Sys.Date()-7, auto.assign = FALSE)
          USD.JPY
2015-08-27  119.38
2015-08-28  120.39
2015-08-29  121.06
2015-08-30  121.73
2015-08-31  121.73
2015-09-01  121.23
2015-09-02  120.32

ただし、これだけだと出力結果が、xtsクラスになって使いにくいため、DFに変換する。

上記の出力OBJ %>% as.data.frame() %>% rownames_to_column(var = "date")

複数の為替レートを取得する

mapを使って処理を繰り返す。以下r-wakalangのKDさんの回答

currencies = c("USD/JPY", "USD/EUR")
map(
 .x = currencie,
 .f = ~{
   quantmod::getFX(.x, from = Sys.Date() - 7, auto.assign = FALSE) %>% 
     as.data.frame() %>% 
     rownames_to_column(var = "date")
 }
) %>% 
 left_join(x = .[[1]], y = .[[2]], by = "date") %>%
 # 以下は xts object に戻すための操作 
 column_to_rownames(var = "date") %>% 
 xts::as.xts() %>% class()

以下、同じくeitsupiさんの回答

df <- tibble(name = currencies) %>%
 mutate(
   data = map(
     name,
     ~ quantmod::getFX(.x, from = Sys.Date() - 7, auto.assign = FALSE) %>%
       fortify.zoo() %>%
       as_tibble() %>%
       rename_with(.cols = last_col(), .fn = ~ "value")
   )
 ) %>%
 unnest(data) %>%
 pivot_wider(id_cols = Index)

Last updated 2021-06-14 | auditR (c) N.Nawata