5 개의 행과 2 개의 열이있는 테이블이 있다고 가정 해 보겠습니다. 첫 번째 열은 분포 유형 (예 : Normal, Lognormal, Weibull 등) 용이고 두 번째 열은 각 매개 변수 용입니다. 5 개 행 각각에 대해 새 데이터 테이블을 만드는 for 루프를 만들고 싶습니다. 새 데이터 테이블에서 행의 매개 변수를 기반으로하는 임의 샘플링 함수로 새 열이 추가됩니다.
예 : 행 1-> 정상, (0.1,0.02); 공식이있는 열로 새 데이터 테이블을 만듭니다.
randomnormal(0.1,0.02)
내 현재 과제는 다양한 분포 유형에 다양한 수의 매개 변수가 필요하다는 것입니다. 이 문제에 어떻게 접근해야하는지에 대한 통찰력에 감사드립니다.
안녕하세요,
몇 가지 생각 :
1) 가능한 경우 수식 스크립팅을 더 쉽게 만들기 위해 매개 변수를 여러 열로 분할합니다.
2) MATCH 공식을 사용하여 분포의 이름을 찾고 특히 해당 분포에 대해 Random 함수를 호출합니다.
Match( :Distribution,
"Normal", Random Normal( :Parameter 1, :Parameter 2 ),
"LogNormal", Random Lognormal( :Parameter 1, :Parameter 2 ),
.
)
다음은 요청한 작업을 수행하는 간단한 예입니다.
Names Default To Here( 1 );
dt = New Table( "Sample",
Add Rows( 5 ),
New Column( "Types",
Character,
Set Values(
{"Normal", "Lognormal", "Weibull", "Uniform", "Johnson Su"}
),
Set Display Width( 79 )
),
New Column( "Parameters",
Character,
Set Values(
{"(0.1,0.02)", "(0.2,.005)", "(0.3,0.005)", "(0.1,0.5)",
"(0.5, 1, 1, 1)"}
),
Set Display Width( 101 )
)
);
For( i = 1, i <= N Rows( dt ), i++,
Eval(
Substitute(
Expr(
New Table( dt:Types[i],
add rows( 20 ),
New Column( "Random " || dt:Types[i],
set each value( __formula__ )
)
)
),
Expr( __formula__ ),
Parse( "Random " || dt:Types[i] || dt:Parameters[i] )
)
)
);
시간을내어 스크립트의 작동 방식을 완전히 이해하고 이해하지 못하는 경우 커뮤니티에서 필요한 추가 정보를 제공 할 수 있도록 답장 해 주시기 바랍니다.