getSymbols() のデフォルト引数を設定する

Rで学ぶ金融データのインポートと管理

Joshua Ulrich

Quantitative Analyst & quantmod Co-Author and Maintainer

getSymbols() の“メソッド”

  • getSymbols() 自体にはデータ取込コードはありません
  • 各データソースのコードは getSymbols.[source] メソッドにあります
  • 例:
# getSymbols() を呼び出す
getSymbols("GDP", src = "FRED")

# getSymbols() がソースのメソッドを呼ぶ
getSymbols.FRED("GDP")
  • ユーザーは getSymbols() のメソッドを直接呼ばないでください
Rで学ぶ金融データのインポートと管理

setDefaults() で既定のデータソースを変更

setDefaults(getSymbols, src = "FRED")
gdp <- getSymbols("GDP", auto.assign = FALSE) 
# 'src' 属性に注目
str(gdp)
 An 'xts' object on 1947-01-01/2016-10-01 containing:
   Data: num [1:280, 1] 243 246 250 260 266 ...
  - attr(*, "dimnames")=List of 2
   ..$ : NULL
   ..$ : chr "GDP"
   Indexed by objects of class: [Date] TZ: UTC
   xts Attributes:  
 List of 2
  $ src    : chr "FRED"
  $ updated: POSIXct[1:1], format: "2017-02-13 08:46:50"
Rで学ぶ金融データのインポートと管理

setDefaults()

  • name = value で新しいデフォルト引数を設定
  • 影響範囲は getSymbols() のみ
  • 値はグローバルな options() に保存
Rで学ぶ金融データのインポートと管理

その他の引数

  • getSymbols() ソースメソッドの仮引数を確認する方法
    • args() を使用: args(getSymbols.yahoo)
    • help() を使用: help("getSymbols.yahoo")
Rで学ぶ金融データのインポートと管理

from/to のデフォルト値

args(getSymbols.yahoo)
 function (Symbols, env, return.class = "xts", index.class = "Date", 
     from = "2007-01-01", to = Sys.Date(), ...)
setDefaults(getSymbols.yahoo, from = "2016-01-01", to = "2016-12-31")

aapl <- getSymbols("AAPL", auto.assign = FALSE) 
str(aapl)
 An 'xts' object on 2016-01-04/2016-12-30 containing:
   Data: num [1:252, 1:6] 102.6 105.8 100.6 98.7 98.6 ...
  - attr(*, "dimnames")=List of 2
   ..$ : NULL
   ..$ : chr [1:6] "AAPL.Open" "AAPL.High" "AAPL.Low" "AAPL.Close" ...
   Indexed by objects of class: [Date] TZ: UTC
   xts Attributes:  
 List of 2
  $ src    : chr "yahoo"
  $ updated: POSIXct[1:1], format: "2017-02-13 08:46:50"
Rで学ぶ金融データのインポートと管理

getDefaults()

getDefaults()
"getSymbols.yahoo"
getDefaults(getSymbols.yahoo)
$from
"'2016-01-01'"

$to
"'2016-12-31'"
  • 返される値は、その関数がユーザー指定のデフォルトを受け付けることを意味しません
setDefaults(load, 
            file = "my_file.RData")

# 動作は変わりません
getDefaults(load)
$file
"'my_file.RData'"
Rで学ぶ金融データのインポートと管理

練習しましょう!

Rで学ぶ金融データのインポートと管理

Preparing Video For Download...