符号访问getSymbols创建的对象

时间:2014-06-25 15:55:57

标签: r quantmod

在下面的伪代码中,我不知道如何识别?未知?我意识到y具有资产指向的符号的名称。符号的对象存储在环境中。我需要通过变量访问对象。

library(quantmod)
x<-c("IBM","GOOG","AAPL")  
for (asset in x)  
{  
    y <- getSymbols(asset, src = "yahoo",from = startDate,to = endDate,auto.assign=FALSE)  
    mydf <- convert ?unknown? to data frame        
    mydf$time <- time(?unknown?)  

    #process mydf  
    #store results in another data frame  

}  
#display results

2 个答案:

答案 0 :(得分:0)

我会创建一个存储变量的新环境。

library(quantmod)
x<-c("IBM","GOOG","AAPL")  
e = new.env()
getSymbols(x, src = "yahoo",from = startDate,
           to = endDate,auto.assign=FALSE,env=e)  

然后,要在新环境中处理变量,您可以使用eapply

mydf <- eapply(e,function(asset){

})

答案 1 :(得分:0)

使用auto.assign=F时,它们不会分配给环境变量(这是一种不推荐使用的行为)。现在你得到一个类“xts”的对象。你可以做到

library(quantmod)
startDate <- as.Date("2014-01-01")
endDate <- as.Date("2014-01-10")
x<-c("IBM","AAPL")  
dfall<-NULL
for (asset in x)  
{  
    y <- getSymbols(asset, src = "yahoo",
        from = startDate,to = endDate,auto.assign=FALSE)  
    mydf <- as.data.frame(y)
    names(mydf)<-c("Open","High","Low","Close","Volume","Adjusted")
    mydf$symbol <- asset
    mydf$time <- time(y)  

    if(is.null(dfall)) {
        dfall<-mydf
    } else {
        dfall<-rbind(dfall, mydf)
    }

}
dfall