제공된 값을 기준으로 복용량 범위를 계산하고 추가합니다.저는 생물학적 검정에서 생성된 원시 샘플 데이터를 가져와서 분석하는 스크립트를 만들고 있습니다.
이를 위해서는 참조자료와 표본자료를 파악하고, 이에 맞는 용량범위를 설정하는 것이 필요하다.
내 스크립트에는 운영자가 샘플 위치(행 x + x)를 식별하고 이러한 샘플에 대한 원하는 복용량 범위를 입력할 수 있는 '샘플 정보' 팝업 창을 포함했습니다. 그리고 여기서 내 어려움이 시작됩니다!

샘플 이름은 데이터 테이블에 올바르게 추가되었지만, 거기에 입력한 값에 따라 선량점을 얻으려면 어떻게 해야 합니까?
스크립트는 시작 농도와 희석 계수를 기준으로 각 복용량 지점을 계산할 수 있어야 합니다.
내가 원하는 모습(이 예에서는 '복용량' 열이 직접 입력됨)

뭔가 제안이 있나요?
저는 JMP 18에서 작업 중이고, 샘플 정보 팝업에 대한 스크립트는 다음과 같습니다.
nw = New Window( "Sample info", << Modal,
H List Box(
Panel Box( "Enter Sample names",
V List Box(
Text Box( "Row A+E" ),
AE = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row B+F" ),
BF = val2 = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row C+G" ),
CG = val3 = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row D+H" ),
DH = val4 = Text Edit Box( "", << Set Width( 200 ) );
)
),
Spacer Box( Size( 10, 10 ) ),
V List Box(
Panel Box("Calculate dosepoints",
V List Box(
Text Box( "Start Conc. (ng/mL)" ),
Conc = Number Edit Box( ),
Text Box( "n Dosepoints" ),
nDP = Number Edit Box( 12 ),
Text Box( "Factor" ),
xF = Number Edit Box( 0.2 ),
)
),
Spacer Box( Size( , 8 ) ),
H List Box(
Spacer Box( Size( 77, 1 ) ),
Button Box("Ok",
val1 = AE << Get text ();
val2 = BF << Get text ();
val3 = CG << Get text ();
val4 = DH << Get text ();
val5 = Conc << Get ();
val6 = nDP << Get ();
val7 = xF << Get ();
Current Data Table() << New Column( "Sample", Character, "Nominal",
Formula(
Match( :Row,
"A", val1,
"E", val1,
"B", val2,
"F", val2,
"C", val3,
"G", val3,
"D", val4,
"H", val4
)
)
);
Current Data Table() << New Column( "Dose", Character, "Nominal",
//Formula( ????
// )
),
)
)
)
)
);위 스크립트가 작동할 수 있는 예제 데이터 테이블을 추가했습니다.
자동화 및 스크립팅데이터 탐색 및 시각화Re: 제공된 값을 기반으로 복용량 범위 계산 및 추가아마도 이런 것일 수도 있겠다
Eval(EvalExpr(
dt << New Column("R", Numeric, Continuous, Formula(
Expr(start_conc)/ Expr(factor) ^ (Col Number(:Sample, :Sample) - Col Cumulative Sum(1, :Sample))
));
));
Re: 제공된 값을 기반으로 복용량 범위 계산 및 추가거의!
저는 귀하의 스크립트를 약간 수정하여 1개의 반복에 대한 올바른 복용량 범위를 계산할 수 있었습니다!(첨부 파일 참조). 다른 반복은 동일한 값을 가져야 하지만(예: 20.000 - 0.0004) 대신 반복 2의 마지막 결과를 계속 나눕니다.
따라서 행 A(복제 1)와 E(복제 2)에 위치한 샘플 'RS'의 경우, 행 E 값의 범위는 원하는 20.000~0.0004이지만, 행 A의 경우 범위는 0.0008~1.67e-12입니다.
nw = New Window( "Sample info", << Modal,
H List Box(
Panel Box( "Enter Sample names",
V List Box(
Text Box( "Row A+E" ),
AE = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row B+F" ),
BF = val2 = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row C+G" ),
CG = val3 = Text Edit Box( "", << Set Width( 200 ) ),
Text Box( "Row D+H" ),
DH = val4 = Text Edit Box( "", << Set Width( 200 ) );
)
),
Spacer Box( Size( 10, 10 ) ),
V List Box(
Panel Box("Calculate dosepoints",
V List Box(
Text Box( "Start Conc. (ng/mL)" ),
Conc = Number Edit Box( ),
Text Box( "n Dosepoints" ),
nDP = Number Edit Box( 12 ),
Text Box( "Factor" ),
xF = Number Edit Box( 0.2 ),
)
),
Spacer Box( Size( , 8 ) ),
H List Box(
Spacer Box( Size( 77, 1 ) ),
Button Box("Ok",
val1 = AE << Get text ();
val2 = BF << Get text ();
val3 = CG << Get text ();
val4 = DH << Get text ();
val5 = Conc << Get ();
val6 = nDP << Get ();
val7 = xF << Get ();
Current Data Table() << New Column( "Sample", Character, "Nominal",
Formula(
Match( :Row,
"A", val1,
"E", val1,
"B", val2,
"F", val2,
"C", val3,
"G", val3,
"D", val4,
"H", val4
)
)
);
Eval(
EvalExpr(
Current Data Table() << New Column( "R", Numeric, Continuous,
Formula(
Expr(val5) / Expr(val7) ^ ( Col Number( :Sample, :Sample ) - Col Cumulative Sum( 1, :Sample ))
)
);
)
);
)
)
)
)
);
Re: 제공된 값을 기반으로 복용량 범위 계산 및 추가Col Number 및 Col Cumulative Sum에 추가 그룹화를 추가해야 합니다. (예를 들어 Row가 작동할 수 있음)
20000 / 5 ^ (Col Number(:Sample, :Sample, :Row) - Col Cumulative Sum(1, :Sample, :Row))

Re: 제공된 값을 기반으로 복용량 범위 계산 및 추가네, 완벽하게 작동합니다! 감사합니다!