이 게시물 끝에 있는 스크립트는 기본적으로 내가 원하는 작업(즉, 시간 = 0에 대해 Y 값이 100인 열 찾기)을 수행하지만 약간 불편하게 만드는 로그 메시지도 생성합니다. 전에 함정에):
A message with an empty Boolean argument enabled an option that was already enabled. That option remains enabled. In previous versions of JMP, this would have disabled the option.
이 메시지는 루프 구성의 일부로 이미 한 번 선택된 후 다시 선택된 모든 열에 대한 로그에 인쇄됩니다. 상대적으로 스크립팅에 익숙하지 않은 사람으로서 저는 다음과 같은 주요 관심사를 가지고 있습니다.
- 이 로그 메시지는 절대적으로 피해야 하고 문제가 발생합니까? 나는 결국 더 큰 테이블을 처리할 것이므로 이 로그 메시지는 단일 스크립트 실행에 대해 수백 번 인쇄될 수 있습니다.
- 시간이 0인 각 행에 대해 Y 값이 100인 테이블의 모든 열을 찾는 더 현명한 방법이 있습니까? (내 경우에는 열이 많은 테이블을 처리할 것이며, 그 중 일부는 시간 = 0에서 100% rel.로 정규화된 결과를 포함합니다. 제가 관심있는 칼럼들입니다.)
Names Default To Here( 1 );
// table required for example
dt = New Table( "Results (absolute & relative) vs time",
Add Rows( 8 ),
New Column( "time",
Numeric,
Set Values( [0, 1, 2, 3, 0, 1, 2, 3] ),
),
New Column( "Y1_absolute",
Numeric,
Set Values( [7, 8, 1, 9, 0.2, 0.4, 0.65, 0.98] ),
),
New Column( "Y1-relative",
Numeric,
Set Values( [100, 114, 14, 129, 100, 200, 325, 490] ),
),
New Column( "Y2_absolute",
Numeric,
Set Values( [12, 6, 4, 0, 80, 90, 120, 75] ),
),
New Column( "Y2_relative",
Numeric,
Set Values( [100, 50, 33, 0, 100, 113, 150, 94] ),
)
);
// selecting columns where for :time == 0 a Y-value == 100 is found
For( i = 1, i <= N Row( dt ), i++,
For( j = 1, j <= N Col( dt ), j++,
If( Column( j )[i] == 0,
For( k = 1, k <= N Col( dt ), k++,
If( Column( k )[i] == 100,
Column( k ) << Set Selected
)
)
)
)
);