如何存储 var(data) 的结果(方差函数)

how to store result from var(data) (variance function)

我正在计算:

var(ORA.Pa.Close)

它 returns :

                 ORA.PA.Close
ORA.PA.Close     2.493055

我如何只获取:2.493055以便将其存储到table。

例如

for (idx in seq(length(var_list))){
  stock_index = ListeTable[[idx]]
  var_index = var_list[idx]
  Valeur.Close <- stock_index[,c(4)]
  var_index = var(Valeur.Close)
  print(var_index) 
}

print returns:

             ACA.PA.Close
ACA.PA.Close     4.924831
             WLN.PA.Close
WLN.PA.Close     275.6803
             VIE.PA.Close
VIE.PA.Close     4.976614
               ALCHI.PA.Close
ALCHI.PA.Close      0.8265476
             SAN.PA.Close
SAN.PA.Close     51.71553
             RUI.PA.Close
RUI.PA.Close     72.45928
             ORA.PA.Close
ORA.PA.Close     2.493055
            BN.PA.Close
BN.PA.Close    35.97064
            AF.PA.Close
AF.PA.Close    7.700757

我应该怎么做才能存储数据中的方差 table 结构如下:

                 Variance
ACA.PA.Close     4.924831
WLN.PA.Close     275.6803
VIE.PA.Close     4.976614
ALCHI.PA.Close      0.8265476
SAN.PA.Close     51.71553
RUI.PA.Close     72.45928
ORA.PA.Close     2.493055
BN.PA.Close    35.97064
AF.PA.Close    7.700757

您确定要计算价格差异而不是 returns 的差异吗?如果前者为真,您只需要对结果调用 as.numeric(),名称将被删除。

要在没有循环的情况下计算它,您可以使用这种方法:

library(quantmod)
library(TTR)

?quantmod

getSymbols(c("IBM", "AAPL"),
                   from = "2016/12/31",
                   to = "2018/12/31",
                   periodicity = "daily")

data <- merge.xts(IBM, AAPL)[, c('IBM.Close', 'AAPL.Close')]
result <- apply(data, 2, var)
> print(result)
 IBM.Close AAPL.Close 
 211.91255   43.17136