{{category 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)