계산에서 감지 된주기JMP가 스프레드 시트가 아니라는 것을 알고 있으며 Excel에서와 다르게 계산해야 할 수도 있지만 해결 방법을 알 수 없습니다.
변수가 자체에 의존하는 계산이 있고 "데이터 열에 대한주기 감지"오류가 발생합니다.
시간이 지남에 따라 용액이 추가되는 탱크가 있습니다. 얼마나 추가했는지, 탱크의 총 부피를 알고 있습니다. 또한 샘플 시간에 탱크에서 볼륨을 꺼냅니다. 각 샘플 볼륨으로 제거되는 솔루션 A의 양을 계산해야합니다. 그러나 나는이 사이클 오류없이 그것을 수행하는 방법을 알 수 없습니다. 도와주세요!
New Column( "Soln A Removed in Current Draw (mL)",
Numeric,
"Continuous",
Formula(
:Name( "Soln A concentration before draw (mL/L)" ) * (
:Name( "Manually Recorded Sample Volume (mL)" ) / 1000)
),
);
New Column( "Soln A concentration before draw (mL/L)",
Numeric,
"Continuous",
Formula(
If(
(:Name( "Soln A added (mL)" )
/
:Name( "Culture Volume Pre-Drawdown (mL)" )
)
* 1000,
(
(
:Name( "Soln A added (mL)" )
-
Lag(
:Name( "Cumulative Soln A Removed (mL)" ), 1
)
)
/
:Name( "Culture Volume Pre-Drawdown (mL)" )
) * 1000
)
),
);
New Column( "Cumulative Soln A Removed (mL)",
Numeric,
"Continuous",
Formula(
Col Cumulative Sum(
:Name( "Soln A Removed in Current Draw (mL)" ),
:Batch Number
)
),
);
New Column( "Soln A added per current Tank Volume (mL/L)",
Numeric,
"Continuous",
Formula(
(:Name( "Soln A added (mL)" ) * 1000) /
:Name( "Culture Volume Pre-Drawdown (mL)" )
),
);데이터 테이블스크립팅Re : 계산에서 감지 된주기당신이 올바른지. JMP는 스프레드 시트가 아닙니다.
JMP 데이터 테이블을 관찰 모음 (즉, 데이터 세트)으로 생각할 수 있습니다. 따라서 볼륨의 각 변화는 새로운 행입니다. 따라서 추가 또는 제거 된 볼륨을 나타내는 하나의 열과 현재 볼륨을 나타내는 다른 열이있을 수 있습니다.
Re : 계산에서 감지 된주기제거 된 양을 입력 할 수 있으면 좋겠지 만, 이전에 제거 된 양에 의존하는 현재 농도를 기준으로 제거 된 양만 알 수 있습니다.
Re : 계산에서 감지 된주기여기에 문제에 대한 다른 견해가 있습니다.여러분이 제공 한 데이터를 감안할 때 완벽하게 테스트 할 수는 없었지만 제가 취하고있는 접근 방식을 보게 될 것이며이를 기반으로 구축 할 수 있어야한다고 생각합니다.
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Soln A Removed in Current Draw (mL)" );
dt << New Column( "Soln A concentration before draw (mL/L)" );
dt << New Column( "Cumulative Soln A Removed (mL)" );
dt << New Column( "Soln A added per current Tank Volume (mL/L)" );
For Each Row(
// Soln A added per current Tank Volume (mL/L)
:Name( "Soln A added per current Tank Volume (mL/L)" ) = (:Name( "Soln A added (mL)" ) * 1000) /
:Name( "Culture Volume Pre-Drawdown (mL)" ) ;
// Soln A concentration before draw (mL/L)
If( :Name( "Soln A added (mL)" ) / :Name( "Culture Volume Pre-Drawdown (mL)" ) * 1000,
:Name( "Soln A concentration before draw (mL/L)" ) = :Name( "Soln A added (mL)" )
-Lag( :Name( "Cumulative Soln A Removed (mL)" ) ) / :Name( "Culture Volume Pre-Drawdown (mL)" ) *
1000
);
// Soln A Removed in Current Draw (mL)
:Name( "Soln A Removed in Current Draw (mL)" ) = :Name( "Soln A concentration before draw (mL/L)" ) *
(:Name( "Manually Recorded Sample Volume (mL)" ) / 1000);
// Cumulative Soln A Removed (mL)
curBatch = :Batch Number ;
curRow = Row();
:Name( "Cumulative Soln A Removed (mL)" ) = Sum(
:Name( "Soln A Removed in Current Draw (mL)" )[dt << get rows where(
:Batch Number == curBatch & Row() <= curRow
)]
);
);
Re : 계산에서 감지 된주기약간 다른 테이블에서 방법을 시도했습니다 (바흐 번호 열만 추가했지만 문제는 여전히 존재한다고 생각합니다. 오류 메시지 대신 빈 셀이 표시됩니다. 변수가 마지막 값에 의존하도록 허용하는 해결 방법이 있습니까?
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Soln A Removed in Current Draw (mL)" );
dt << New Column( "Soln A concentration before draw (mL/L)" );
dt << New Column( "Cumulative Soln A Removed (mL)" );
dt << New Column( "Soln A added per current Tank Volume (mL/L)" );
For Each Row(
// Soln A added per current Tank Volume (mL/L)
:Name( "Soln A added per current Tank Volume (mL/L)" ) = (:Name( "Soln A added (mL)" ) * 1000) /
:Name( "Culture Volume Pre-Drawdown (mL)" ) ;
// Soln A concentration before draw (mL/L)
If( :Name( "Soln A added (mL)" ) / :Name( "Culture Volume Pre-Drawdown (mL)" ) * 1000,
:Name( "Soln A concentration before draw (mL/L)" ) = :Name( "Soln A added (mL)" )
-Lag( :Name( "Cumulative Soln A Removed (mL)" ) ) / :Name( "Culture Volume Pre-Drawdown (mL)" ) *
1000
);
// Soln A Removed in Current Draw (mL)
:Name( "Soln A Removed in Current Draw (mL)" ) = :Name( "Soln A concentration before draw (mL/L)" ) *
(:Name( "Manually Recorded Sample Volume (mL)" ) / 1000);
// Cumulative Soln A Removed (mL)
curBatch = :Batch Number ;
curRow = Row();
:Name( "Cumulative Soln A Removed (mL)" ) = Sum(
:Name( "Soln A Removed in Current Draw (mL)" )[dt << get rows where(
:Batch Number == curBatch & Row() <= curRow
)]
);
);