JSL : 두 번째 열의 일치하는 문자열을 기반으로 행 범위에서 값을 변경 하시겠습니까?우리의 데이터 수집 소프트웨어는 실험보다 약간 일찍 시작되었으므로 다음과 같은 방법으로 JMP 데이터에서 지연 시간을 없애고 싶습니다.
1. 사용자는 각 실험의 시작 날짜를 입력합니다 (동일한 데이터 표에서 서로 다른 시간에 시작하는 배수 일 수 있음). 이 부분은 목록 상자로 스크립트되었습니다.
2. 구문 분석 날짜 - 시간.
삼. A 열에있는 문자열 식별자와 일치하는 것을 기반으로 각 실험에 상관 된 행의 범위를 찾습니다.
4. 날짜 - 시간을 시작하기 전에 모든 행을 제거하십시오.
5. 경과 된 실험 시간 (십진수 시간)을 입력 날짜 - 시간에서 시작하도록 변경하십시오.
나는 오류 메시지를 계속받는 # 5까지 모든 것을 성공적으로 수행했습니다. 이상적으로는 경과 시간 열의 각 셀에서 각 실험에 대한 첫 번째 행의 숫자를 뺍니다. 루프가 가장 적합할까요? 각 실험 경과 시간에 대해 새 열을 작성한 다음 재결합해야합니까? 도움과 스크립트를 제공해 주셔서 감사합니다.
재 : JSL : 두 번째 열의 일치하는 문자열을 기반으로 행 범위의 값을 변경 하시겠습니까?고마워, 이것은 매우 도움이되었는데, 나는이 스크립트를 스크립트에서 만들었지 만 또 다른 장애물을 발견했다. 데이터 포인트가 시작 시간과 완벽하게 일치하지 않아 최대 1 분이 지나면 끝납니다. 나는 처음 시점을 ~ 0.01 대신에 0으로 끌어 들이고 싶다. 그러나 조정 된 시간 열에 값이 표시되지 않습니다. 다음은 타임 스탬프가 suuplied 내 코드입니다.
t1 = dt << Get Rows Where (:BatchID == "ABCD");
t2 = dt << Get Rows Where (:BatchID == "EFGH");
dt << New Column("TimeStart", Number);
:TimeStart[t1] = timestart1;
:TimeStart[t2] = timestart2;
dt << New Column("NewEFT", Number, Formula((:Datetime-:TimeStart)/3600));
dt << Select Where(:NewEFT< 0);
dt << delete rows;
dt << Delete Columns("EFT_hrs");
dt << New Column("Adjusted EFT", Number);
:Adjusted EFT[t1] = :NewEFT - min(:NewEFT[t1]);
:Adjusted EFT[t2] = :NewEFT - min(:NewEFT[t2]);재 : JSL : 두 번째 열의 일치하는 문자열을 기반으로 행 범위의 값을 변경 하시겠습니까?관심있는 것을 찾을 수도 있습니다. 이 실 세부 정보는 데이터의 특정 형식에 따라 달라 지지만