10분 동안 1분마다 측정하는 실험 데이터가 있습니다.
그런 다음 세트 중간에 있는 데이터 포인트의 하위 집합에 대한 평균을 구하고 싶습니다.
내 솔루션은 기준(모달 창을 통한 입력)을 포함하고 계산에 포함되어야 하는 경우 각 행을 1 또는 0으로 설정하는 수식이 있는 숨겨진 열(:Range)을 갖는 것입니다.
그런 다음 내 출력 열은 Col Mean 함수를 사용하여 관심 지점의 평균을 구합니다.
이 부분은 훌륭하게 작동하지만 첫 번째 빈 행(계산에 포함되지 않음)이 다음 행의 값을 가져오기를 원합니다. 그러면 행 아래에서 추가 데이터 조작에 도움이 됩니다. 아래와 같이 Lag 기능을 추가했습니다.
If( :Range == 1,
Col Mean( :Measurement, :ID, :Range ),
Lag( :Measurement, -1 )
)
문제는 이것을 스크립트로 실행할 때 Lag 기능이 작동하지 않는다는 것입니다. 위의 수식을 수동으로 입력하면 제대로 작동하지만 수식이 열에 올바르게 적용된 것을 볼 수 있음에도 불구하고 아래 스크립트는 :Range == 1인 행만 채웁니다.
New Column( "Mean Measurement", Formula(
If( :Range == 1,
Col Mean( :Measurement, :ID, :Range ),
Lag( :Measurement, -1 ))))
이에 대한 이유가 있습니까? 그리고 열이 공식을 다시 평가하도록 강제할 수 있는 방법이 있습니까?
Lag() 함수는 지정된 행에서 작동하며 "벡터화된" 함수가 아닙니다.열 함수에서 행은 암시적(테이블의 행)이므로 문제 없이 열 수식에서 작동합니다.
스크립트의 경우 lag 함수 문 앞에 Row()== 명령을 사용하여 행을 지정하면 Lag가 값을 반환해야 합니다.
Row() = 3;
If( :Range == 1,
Col Mean( :Measurement, :ID, :Range ),
Lag( :Measurement, -1 )
)
또한 Lag(:column, )에 대한 lag number 인수를 알고 있는지 확인하기 위해 음수이면 실제로 "forward lag"입니다.위의 예에서 이전 행이 아닌 다음 행의 값을 찾습니다.
1분 간격으로 10번 측정하는 이유는 무엇입니까? 시간 과정의 중간에 몇 가지 관찰의 평균을 사용하는 이유는 무엇입니까?
전체 곡선을 반응 값으로 분석하면 더 많은 정보를 얻을 수 있습니다. 참조 기능 데이터 탐색기 더 많은 아이디어를 위해. JMP Pro로 '기능적 DOE'를 분석할 수 있습니다.