Вы можете использовать apply.daily()
.Вот пример использования apply.monthly()
для ежедневных данных.Концепция такая же.
data(sample_matrix)
x <- as.xts(sample_matrix[,"Close"])
apply.monthly(x, function(p) log(last(p)/as.numeric(first(p))))
[,1]
2007-01-31 0.002152642
2007-02-28 0.008169076
2007-03-31 -0.032065389
2007-04-30 0.009559690
2007-05-31 -0.035670840
2007-06-30 0.002430626
Вам нужен вызов as.numeric()
, потому что арифметические операции над объектами xts / zoo всегда сначала выравниваются по индексу.as.numeric()
удаляет индекс.