0

quantmod によって作成されたデータ フレーム SPY から SPY.Close 列を抽出しようとしています。ただし、これを一般化して、最初に渡したシンボルを使用して近いベクトルを作成できるようにしたいと思います。

library(quantmod)
library(wmtsa)
library(ggplot2)
library(tseries)
library(pracma)
s <- getSymbols("SPY")
s <- as.name(s)
field <- c(paste(s,".Close",sep=""))
close <- as.vector(s[,field])

入力するだけなら

close <- as.vector(SPY[,"SPY.Close"])

これは成功です。ただし、これらは定数であり、新しいシンボルごとに変更する必要があります。

どんな助けでも大歓迎です。

4

3 に答える 3

1

デフォルトで列quantmod::getPriceを検索するを使用できます。"*.Close"

require(quantmod)
x <- getSymbols("SPY", auto.assign=FALSE)
head(getPrice(x))
#            SPY.Close
# 2007-01-03    141.37
# 2007-01-04    141.67
# 2007-01-05    140.54
# 2007-01-08    141.19
# 2007-01-09    141.07
# 2007-01-10    141.54
于 2015-01-28T18:24:47.930 に答える
1

文字値を使用して作業環境から名前付きオブジェクトをプルする場合は、次を試してくださいget

s <- getSymbols("SPY")
field <- c(paste(s,".Close",sep=""))
close <- get(s)[, field]


str(get(s)[, field])
An ‘xts’ object on 2007-01-03/2015-01-27 containing:
  Data: num [1:2031, 1] 141 142 141 141 141 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr "SPY.Close"
  Indexed by objects of class: [Date] TZ: UTC
  xts Attributes:  
List of 2
 $ src    : chr "yahoo"
 $ updated: POSIXct[1:1], format: "2015-01-28 10:06:17"

(as.nameは不要であり、当面の問題を混乱させた可能性があります。sオブジェクトは、既に使用可能な形式になっていました。)

于 2015-01-28T18:10:53.017 に答える