как сохранить результат из var (данные) (функция отклонения)

#r #variance

#r #отклонение

Вопрос:

Я вычисляю :

 var(ORA.Pa.Close)
 

и он возвращает :

                  ORA.PA.Close
ORA.PA.Close     2.493055
 

Как мне получить только: 2.493055 Для того, чтобы сохранить его в таблице.

Например

 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 ВОЗВРАТ:

              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
 

Как мне следует поступить, чтобы сохранить дисперсию в таблице данных, структурированной следующим образом:

                  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
 

Ответ №1:

Вы уверены, что хотите вычислить отклонение цены вместо отклонения доходности? Если первое значение равно true, вам нужно только вызвать 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