0

次のように計算されたさまざまな統計のリストを作成する関数があります。

RiskStats = list(stdev,sharpe,downdev,sortino,maxDD,calmar,currDD)

> RiskStats
[[1]]
             Index
StdDev       3.2506

[[2]]
                                 Index
Annualized Sharpe Ratio (Rf=0%)      -1.2434

[[3]]
                                    Index
Downside Deviation (MAR = 0%)        3.194

[[4]]
                              Index
Sortino Ratio (MAR = 0%)      -1.2655

[[5]]
            Index
maxDD      -8.9467

[[6]]
                  Index
Calmar Ratio     -0.44846

[[7]]
                 Index
Current DD       -8.543

このリストの構造(7行1列)を設定したいので、簡単に書くことができます

dim(RiskStats) <- c(7,1)

計算された正しい統計ではなく、特定の結果[List、1]が得られるのはなぜですか?

  > RiskStats
                    Index
Annual volatility  3.2506      
Sharpe ratio       -1.2434     
Downside deviation 3.194       
Sortino ratio      -1.2655     
Maximum Drawdown   List,1      
Calmar ratio       -0.44846    
Current drawdown   List,1   
4

2 に答える 2

1

このデータの使用

dput(RiskStats)
RiskStats <- list(structure(list(Index = 3.2506), .Names = "Index", row.names = "StdDev", class = "data.frame"), 
    structure(list(Index = -1.2434), .Names = "Index", row.names = "Annualized_Sharpe_Ratio_Rf", class = "data.frame"), 
    structure(list(Index = 3.194), .Names = "Index", row.names = "Downside_Deviation_MAR_0", class = "data.frame"), 
    structure(list(Index = -8.9467), .Names = "Index", row.names = "maxDD", class = "data.frame"), 
    structure(list(Index = -0.44846), .Names = "Index", row.names = "Calmar_Ratio", class = "data.frame"), 
    structure(list(Index = -8.543), .Names = "Index", row.names = "Current_DD", class = "data.frame"))

あなたはいくつかの方法であなたの目標を達成することができます、ここにそれらのいくつかがあります:

# Alternative 1  (suggested by @Roman Luštrik)
do.call(rbind, RiskStats)  # I think this is the best one 

# Alternative 2
Reduce(rbind, RiskStats)

# Alternative 3
t(data.frame(lapply(RiskStats, t))) # It's not so good, but it works.

選択した代替案が何であれ、結果は次のようになります。

                              Index
StdDev                      3.25060
Annualized_Sharpe_Ratio_Rf -1.24340
Downside_Deviation_MAR_0    3.19400
maxDD                      -8.94670
Calmar_Ratio               -0.44846
Current_DD                 -8.54300
于 2013-02-06T11:49:59.123 に答える
0

その理由は、ドローダウンと最大ドローダウンはリスト自体であり、他のデータ構造は他のデータ構造である可能性が高いためです。

それらの要素でunlist()を試してください。

于 2013-02-06T11:42:23.120 に答える