简短版本:如何以符号方式访问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
}
我可能会用蛮力来做,但我正在寻找优雅的东西。
答案 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)