2017-10-02 8 views
0

私はモデルからのいくつかの出力に基づいて感度分析を行っています。のは、次のようにIは行列があるとしましょう:[1,2]、感度分析のために行列から値を抽出する

parameter_range <- matrix(c(1.61-(1.61*0.10),1.61,1.61+(1.61*0.10),   #parameter 1 
         20-(20*0.1),20,20+(20*0.1),       #parameter 2 
         -2.5-(2.5*0.1),-2.5,-2.5+(2.5*0.1),     #parameter 3 
         -1.007-(-1.007*0.1),-1.007,-1.007+(-1.007*0.1),  #parameter 4 
         4000-(4000*0.1),4000,4000+(4000*0.1)), nrow=3, ncol=5) #parameter 5 parameter 

>parameter_range 

     [,1] [,2] [,3] [,4] [,5] 
[1,] 1.449 18 -2.75 -0.9063 3600 
[2,] 1.610 20 -2.50 -1.0070 4000 
[3,] 1.771 22 -2.25 -1.1077 4400 

データセットが位置[1、] =最小値(値-10%を意味する)と仮定=平均値、[3] =最大値(平均値+ 10%)。

最小値と最大値の周りの可能なパラメータの組み合わせをそれぞれ抽出するループを作成する必要があります。

まず組み合わせ: 1.449 20 -2.50 -1.0070 4000

第二組み合わせ: 1.610 20 -2.50 -1.0070 4000

第三の組み合わせ: 1.771 20 -2.50 -1.0070これは15のパラメータの組み合わせであります4000

第四組み合わせ: 1.610 18 -2.50 -1.0070 4000

...というように。

ありがとうございました!このような

+3

あなたが何を意味するかは明らかではありません – Sotos

答えて

1

何か:

library(dplyr) 

all_comb = parameter_range %>% 
    data.frame() %>% 
    expand.grid() %>% 
    arrange(X1) %>% 
    as.matrix() 

結果:

> head(all_comb, 10) 
     X1 X2 X3  X4 X5 
[1,] 1.449 18 -2.75 -0.9063 3600 
[2,] 1.449 20 -2.75 -0.9063 3600 
[3,] 1.449 22 -2.75 -0.9063 3600 
[4,] 1.449 18 -2.50 -0.9063 3600 
[5,] 1.449 20 -2.50 -0.9063 3600 
[6,] 1.449 22 -2.50 -0.9063 3600 
[7,] 1.449 18 -2.25 -0.9063 3600 
[8,] 1.449 20 -2.25 -0.9063 3600 
[9,] 1.449 22 -2.25 -0.9063 3600 
[10,] 1.449 18 -2.75 -1.0070 3600 
関連する問題