#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