2

私がやりたいことはかなり簡単ですが、私はそれを理解することができませんでした。ここで概説したのと同じようなことができると思いました

によって返されるxtsOHLCオブジェクトであるティッカーの文字ベクトルがありますgetSymbols。シンボルの各ティッカーをループし、シンボルをに渡してadjustOHLC分割を調整したいと思います。

symbols = c("FCX", "SPY")

for(symbol in symbols){
  return(adjustOHLC(symbol,adjust =c("split"), use.Adjusted=FALSE))
}

変数'symbol'の値を取得adjustOHLCしていないようです。

debug: div <- getDividends(symbol.name)
Browse[2]> symbol.name
[1] "symbol"
Browse[2]> 
Error in download.file(paste(yahoo.URL, Symbol.name, "&a=", from.m, "&b=",  : 
  cannot open URL 'http://ichart.finance.yahoo.com/table.csv?s=symbol&a=0&b=01&c=1970&d=3&e=14&f=2012&g=v&ignore=.csv'
In addition: Warning message:
In download.file(paste(yahoo.URL, Symbol.name, "&a=", from.m, "&b=",  :
  cannot open: HTTP status was '404 Not Found'

使用するget(symbols)と同じ結果が得られます(この投稿の上部に表示されているリンクでも同様のアプローチが使用されています)。

for(symbol in symbols){
  return(adjustOHLC(get(symbol),adjust =c("split"), use.Adjusted=FALSE))
}

debug: div <- getDividends(symbol.name)
Browse[2]> symbol.name
[1] "get(symbol)"
Browse[2]> 
Error in download.file(paste(yahoo.URL, Symbol.name, "&a=", from.m, "&b=",  : 
  cannot open URL 'http://ichart.finance.yahoo.com/table.csv?s=get(symbol)&a=0&b=01&c=1970&d=3&e=14&f=2012&g=v&ignore=.csv'
In addition: Warning message:
In download.file(paste(yahoo.URL, Symbol.name, "&a=", from.m, "&b=",  :
  cannot open: HTTP status was '404 Not Found'

lapplyこれをもっと速くするためにも利用できると思いましたが、最初は上記の問題に悩まされていると思います。

lapply(symbols, function(x) adjustOHLC(x, adjust=c("split"), use.Adjusted=FALSE) )

簡単そうです-これがとても些細なことであるならば、私は謝罪します。ヘルプに感謝します。

4

1 に答える 1

4

x引数はadjustOHLCxtsオブジェクトである必要があります。だから、あなたはgetそれを取得するために使用する必要があります。get(symbol)ただし、yahooのティッカーシンボルがxtsオブジェクトの名前(この場合)と異なる場合は、symbol.name引数を使用する必要があります。また、adjustOHLCは「auto.assign」のように「auto.assign」しないため、forループ内で値を割り当てる必要がありますgetSymbols

symbols = c("FCX", "SPY")
getSymbols(symbols, src='yahoo')
for(symbol in symbols){
  assign(symbol,adjustOHLC(get(symbol, pos=.GlobalEnv), symbol.name=symbol, 
                           adjust=c("split"), use.Adjusted=FALSE))
}

lapplyの使用についてお話しましたが、次のように使用できます

adjusted.list <- lapply(symbols, function(x) {
  adjustOHLC(get(x, pos=.GlobalEnv), symbol.name=x, adjust=c("split"), 
             use.Adjusted=FALSE)
})
names(adjusted.list) <- symbols
于 2012-04-14T21:14:59.940 に答える