JSL을 사용하여 데이터 테이블 셀에 값을 배치하는 방법<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />저는 JSL을 처음 접했지만 우리가 생산하는 소프트웨어 제품이 결과를 제대로 보고하는지 테스트하기 위해 테이블과 그래프를 생성하는 프로세스를 처리하기 위해 여러 스크립트를 작성해 왔습니다. 지금 겪고 있는 문제 중 하나는 보고된 시간(쉬움)을 표시하는 동시에 보고 시간 저장소의 잔차를 미래 시간 저장소에 반영하는 그래프를 만들어야 한다는 것입니다.
예를 들어 x축이 자정부터 자정까지 개별 15분 시간 구간으로 실행되는 대기 시간 그래프를 만들어야 합니다. 대기 시간을 보고하는 데이터 세트가 있고 대기가 시작되는 시간을 비닝합니다. 단순화를 위해 오전 9시 5분에 위치에 입장하는 상담원에 대해 90분의 대기 시간이 보고되는 행 하나를 선택했습니다. 해당 대기 시간에 대한 시간 구간은 오전 9시입니다. 90분 대기 시간이 보고되고 오전 9시 시간 구간의 그래프에 표시됩니다. 기존 그래프에서는 다른 모든 데이터가 제외되었기 때문에 다른 모든 시간은 0이 됩니다. 그러나 실제로 그래프는 대기 시간이 0이 될 때까지 여러 시간 구간에 걸쳐 해당 에이전트의 대기 시간을 표시해야 합니다. 효과적으로, 해당 위치에 입장하는 다음 사람이 현재 에이전트가 여전히 대기열에 있는 시간 동안 에이전트 뒤에 있는 위치에 도착할 경우 대기할 것으로 예상할 수 있는 최소 시간은 얼마입니까?
따라서 아래 나열된 항목을 제외하고 시간 저장소에 값이 0인 모든 시간의 행렬을 만들어야 합니다.
시간 상자 기다리는 시간
오전 9시 90분
오전 9시 15분 80분
오전 9시 30분 65분
오전 9시 45분 50분
오전 10시 35분
오전 10시 15분 20분
오전 10시 30분 5분
데이터 테이블의 마지막 열 이후에 각 시간 저장소에 대한 열을 생성하는 스크립트가 이미 있으며, 관련된 조건의 수와 0이 아닌 대기 시간이 어디서, 언제, 얼마나 자주 발생하는지를 발견했습니다. 열 수식을 사용하는 행렬의 특정 행은 가능하다면 지나치게 복잡해집니다. 그래서 나는 중첩 루프를 사용하여 행렬의 각 열의 각 행을 통과하고 거기에 배치되어야 하는 대기 시간 값을 결정할 수 있도록 개별 셀을 채우는 몇 가지 방법이 있기를 바랐습니다.
제가 선호하는 또 다른 옵션은 오버플로 데이터를 처리하기 위해 하위 레코드가 포함된 새 데이터 테이블을 만드는 것입니다. 예를 들어 데이터 테이블의 하위 집합은 다음 4개 행입니다.
| 에이전트 ID | 위치 | 낮 | 입장 시간 | 퇴실 시간 | 최소 운송 시간 | 기다리는 시간 | 시간 상자 |
|---|
184 | 송신 대기열 | 1 | 오전 7시 10분 24초 | 오전 7시 10분 24초 | 0 | 0 | 오전 7시 |
| 185 | FIS 입학 | 1 | 오전 6:41:38 | 오전 6:41:38 | 0 | 0 | 오전 6시 30분 |
| 185 | 방문자 대기열 | 1 | 오전 6:41:38 | 오전 7:00:51 | 0 | 1153 | 오전 6시 30분 |
| 185 | 수하물 찾는 곳 | 1 | 오전 7:01:59 | 오전 7:01:59 | 0 | 0 | 오전 7시 |
스크립트는 원본 테이블의 각 행을 검색하여 새 데이터 테이블에 복사합니다. 위 예의 세 번째 행에서 총 대기 시간인 1153초는 오전 6시 30분 시간 저장소에서 대기하는 데 소요된 시간보다 큽니다. 오전 6시 45분 시간 저장소 - 오전 6시 41분 38초 대기열 입력 시간 - 0초 대기열 전송 시간 = 오전 6시 30분 시간 저장소에 사용된 202초의 대기 시간입니다. 따라서 새 데이터 테이블은 하위 행을 추가하여 위에 표시된 데이터 테이블 영역이 다음과 같이 표시되도록 합니다.
| 에이전트 ID | 위치 | 낮 | 입장 시간 | 퇴실 시간 | 최소 운송 시간 | 기다리는 시간 | 시간 상자 |
|---|
| 184 | 송신 대기열 | 1 | 오전 7시 10분 24초 | 오전 7시 10분 24초 | 0 | 0 | 오전 7시 |
| 185 | FIS 입학 | 1 | 오전 6:41:38 | 오전 6:41:38 | 0 | 0 | 오전 6시 30분 |
| 185 | 방문자 대기열 | 1 | 오전 6:41:38 | 오전 7:00:51 | 0 | 1153 | 오전 6시 30분 |
| 185 | 방문자 대기열 | 1 | 오전 6:41:38 | 오전 7:00:51 | 0 | 951 | 오전 6시 45분 |
| 185 | 방문자 대기열 | 1 | 오전 6:41:38 | 오전 7:00:51 | 0 | 51 | 오전 7시 |
| 185 | 수하물 찾는 곳 | 1 | 오전 7:01:59 | 오전 7:01:59 | 0 | 0 | 오전 7시 |
기울임꼴로 표시된 행은 상담원 185가 방문자 대기열에서 더 이상 대기하지 않을 때까지 남은 대기 시간을 표시하는 방문자 대기열의 상담원 185에 대한 하위 행입니다. 그런 다음 하위 레코드가 필요한 추가 데이터를 제공하므로 이 테이블을 사용하여 필요한 그래프를 생성할 수 있습니다.
누구든지 이 솔루션 중 하나에 대한 방법을 제공할 수 있다면 크게 감사하겠습니다.
Re: JSL을 사용하여 데이터 테이블 셀에 값을 배치하는 방법은 무엇입니까?고마워요 론.
그것은 알아두면 좋아. 해당 줄은 관련 없는 것처럼 보였지만 JSL은 스크립팅 언어이고 저는 이제 막 자체 스크립트를 작성하기 시작했습니다. 실제로 몇 년 동안 JMP의 스크립팅 기능을 사용해 왔지만 대부분 플랫폼에서 데이터 테이블에 스크립트를 저장하는 것이었습니다. 필요할 때 몇 가지 조정을 수행합니다. 행 추가와 관련하여 무엇을 하고 있는지 확실하지 않았습니다. 처음에는 행을 미리 채우는 것과 관련이 있을 수도 있다는 미친 추측이 있었지만 행 추가가 문서화되지 않은 방식으로 이 작업을 수행하고 있다는 것을 깨달았습니다.
JMP 스크립팅 가이드에 따르면, 행 추가 ( 숫자 ) 지정된 것을 추가합니다 숫자 하지만 내부 루프는 이벤트 기간에 따라 한 번에 하나의 새 행을 추가하고 목록으로 포함된 소스 행의 열 값을 복사합니다. 로위 , 새 행으로 이동합니다. 이 문서화되지 않은 기능을 알아낸 것에 감사드립니다. 나는 상당한 프로그래밍 경험이 있고 구문이 잘 문서화되어 있는 한 새로운 언어를 알아낼 수 있기 때문에 이것이 내가 막힌 이유 중 하나였습니다. JMP 문서에는 Add Rows 함수가 특정 행에 대한 열 값 목록이 포함된 변수를 매개변수로 받아들일 수 있다는 언급이 없습니다.
Re: JSL을 사용하여 데이터 테이블 셀에 값을 배치하는 방법은 무엇입니까?안녕하세요 MD님,
내 스크립트가 당신에게 도움이 되어 기쁘네요. 내가 작성했을 때 추가 기능을 사용할 수 없었습니다.
z에 관해서; 방금 확인해봤는데 필요없네요. 루프는 그것 없이도 잘 작동할 것입니다. 나는 for 루프에 z가 있어야 통과하는 횟수를 계산할 수 있다고 생각하곤 했습니다.
스크립트를 테스트할 때 항상 사용할 수 있는 루프 수를 가짐으로써 스크립트의 동작을 제어하는 데 도움이 되었습니다.
최상의,
론.
Re: JSL을 사용하여 데이터 테이블 셀에 값을 배치하는 방법은 무엇입니까?질문.
이벤트 기간을 기준으로 새 행을 생성하는 코드 블록에서
을 위한 ( 나 = 1 , 나 <= 행N , 나 ++,
로위 = dt << 행을 얻다 ( 나 ) ;
을 위한 ( 지 = 1 , 지 <= ( : 이름 ( "이벤트 기간" )[ 나 ] - 1 ) , 지 ++,
지 ;
dt << 행 추가 ( 로위 ) ;
dt << 수식 실행 ;
) ;
) ;
그 줄은 무엇입니까? 지 ; 하다?
Re: JSL을 사용하여 데이터 테이블 셀에 값을 배치하는 방법은 무엇입니까?론,
정보 주셔서 감사합니다. 추가 기능이 제게는 작동하지 않았지만 버블 도표 문제에 대한 코드를 검토한 결과 제가 겪고 있던 문제가 해결되었습니다. 필요한 스크립트를 작성하는 데 하루 종일 걸렸지만 데이터 공백을 메우기 위해 하위 행을 추가하기 위해 제공한 코드는 꽤 오랫동안 막다른 골목으로 남아 있었을 작업을 완료하는 데 도움이 되었습니다.
Re: JSL을 사용하여 데이터 테이블 셀에 값을 배치하는 방법은 무엇입니까?안녕하세요, MD님
귀하의 질문을 완전히 이해했는지는 모르겠지만 다음 두 링크를 시도해 보십시오.
1) 빈도 열 추가 기능으로 확장
2) 버블 도표 - 동일하지 않은 시간 간격