访问getSymbols()返回的任意符号列表?

时间:2016-02-07 21:30:13

标签: r xts quantmod

简短版本:如何以符号方式访问getSymbols()返回的对象?

(我正在学习R,这是我的第一个'现实生活'剧本/功能。我已经使用了当天最好的部分搜索,我仍然感到困惑。)

我想采取任意一组符号,并从去年到现在的高位获得每个符号的百分比回报。

(或者更一般地说,我想分别对每个符号进行一些操作)。

我尝试了几种方法;将它们存储到new.env()并尝试在那里解析它们,并将它们放入列表(),但我仍然无法访问它们的$ High。 我还没有学会lapply和eapply。

这是我到目前为止所做的:

library(quantmod)
symbols<-(c("^DJI", "^GDAXI", "^SPC","^RUT", "XOM", "K"))

t1<-as.POSIXlt(as.Date(Sys.Date()))
t1$year<-t1$year-1 #one year ago
start_date<-t1
for(i in symbols) {
  x<-getSymbols(i, from=start_date, auto.assign=FALSE)
  print(seriesHi(x))  #used for test only
# get the high value
# get the last value
# Print symbol name:
# Print last/high
}

我可能会用蛮力来做,但我正在寻找优雅的东西。

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解这个问题。如果数据框中有日期时间对象,则可以简单地对日期时间对象进行子集化

#this uses a range of dates, but you can use date parts as well
your_subset <- subset(df, POSIXtime >= as.POSIXct('2015-02-07 13:45')
              POSIXtime <= Sys.time())

然后,您可以简单地制作数据表。它可以很简单:

symbols<-c("^DJI", "^GDAXI", "^SPC","^RUT", "XOM", "K","XOM")

your_proportions <- table(symbols)
your_proportions / length(symbols)