Возвращаемое значение этой функции представляет собой фрейм данных, поэтому вопрос заключается в том, как сделать так, чтобы столбец фрейма данных печатался со знаком процента.
Далее следует воспроизводимый пример.
> require(PerformanceAnalytics)
> data(managers)
> tb = table.AnnualizedReturns(managers[,1],Rf=0)
> tb
HAM1
Annualized Return 0.1375
Annualized Std Dev 0.0888
Annualized Sharpe (Rf=0%) 1.5491
Теперь мы определяем новый класс и функцию формата, которая отображается со знаком процента:
> format.pc = function(x,...){sprintf('%0.2f%%',x)}
> class(tb[,1])="pc"
А теперь как по волшебству:
> tb
HAM1
Annualized Return 0.14%
Annualized Std Dev 0.09%
Annualized Sharpe (Rf=0%) 1.55%
Базовые значения не изменились:
> tb[,1]
[1] 0.1375 0.0888 1.5491
attr(,"class")
[1] "pc"
они просто находятся в векторе этого нового класса.
person
Spacedman
schedule
19.11.2014