워크플로를 만들 때 tabulate를 사용하여 요약 표를 만들면 자동으로 "Untitle 1"이라는 이름이 지정됩니다. 그 결과 워크플로를 다시 실행하면 새로 만든 요약 표의 이름이 "Untitle 2"로 지정되어 워크플로가 Untilte1을 찾을 수 없고 수동으로 참조를 지정해야 하며 새 표가 많으면 실수가 많이 발생합니다.
Workflow에서 자동으로 새 테이블을 인식하도록 할 수 있는 방법이 있나요? 아니면 Tabulate에서 "make it into table" 앞에 테이블 이름을 직접 지정할 수 있나요? "Untitle"
감사해요!
Tabulate를 사용할 때는 이름을 정할 수 있지만, JSL을 수정해서 정해야 할 것 같습니다.(<< Make Into Data Table에 Output Table("tablename") 추가)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Car Poll.jmp");
obj = dt << Tabulate(
Add Table(
Column Table(Grouping Columns(:sex, :marital status)),
Row Table(Grouping Columns(:country, :size))
)
);
dt = obj << Make Into Data Table(Output Table("My Table"));Workflow Builder는 훌륭합니다. 사용자가 JSL 스크립팅에 대해 알 필요가 없습니다.
... 그는 결국 함정에 부딪히게 됩니다. 바로 테이블 이름 충돌입니다.
50%의 경우에는 일치하는 이름의 테이블이 없습니다. JMP에서 이 질문을 합니다.
문제는 이름이 일치하는 테이블이 있고, 그 테이블이 잘못된 경우 발생합니다.
이 주제는 이 강연의 Q&A에서 논의되었습니다.
워크플로 빌더 또는 스크립팅의 "아기 단계"
여러 가지 "해결 방법"이 있습니다.
가장 쉬운 방법(#4b) - @jthi의 예를 따르세요:
JSL을 조금 사용하고 테이블 참조를 " dt "로 저장합니다. 그런 다음 다른 모든 워크플로 단계에서도 dt를 사용합니다.
참고: "출력 테이블"을 지정하면 충돌이 발생할 때까지만 작동하고, 충돌이 발생하면 "제목 없음"이 "제목 없음 2"가 됩니다.
다른 접근 방식:
#1 되감기 아이콘 사용

... 모든 데이터 테이블을 닫으면 새로 생성된 테이블은 다시 "제목 없음"으로 표시됩니다.
-> 견고한 솔루션이 없음
열려 있는 데이터 테이블인 ' 제목 없음'이 있고 사용자가 워크플로를 실행하려고 하면 이 접근 방식은 실패합니다.
#2: 저장
데이터 테이블을 만든 후 특정 이름으로 저장합니다. 저장된 데이터 테이블을 사용하여 추가 단계를 기록합니다.
멋진 점: Save를 사용하면 테이블 이름이 충돌하더라도 JMP는 "2"를 추가하지 않습니다.
매번 같은 임시 파일을 사용하고 덮어쓰면 됩니다.
별로 좋지는 않지만 매우 효과적입니다!!
@Zoe_Betteridge in JMP Workflow Builder를 사용하여 분석 자동화
#3: JMP18 이후의 새로운 기능: for each 루프를 사용하세요
중첩된 워크플로 단계의 모든 테이블 이름을 가져오기 단계의 테이블 이름으로 바꿉니다(N=1인 경우에도 작동):
https://community.jmp.com/t5/Benelux-JMP-Users-Group/Workflow-Builder-or-the-quot-baby-steps-quot-into-Scripting/mp/739486/highlight/true#M7
#4: JSL을 조금 사용하여 모든 워크플로 단계에서 테이블 이름 참조를 제거합니다.
// for workflow steps like
// Data Table("mytable") << command (...);
// just remove the data table and get:
command( ... )[불행히도, 이 접근 방식이 실패하는 몇 가지 예외가 있습니다].
#4b: 코드를 변경하고 변수를 데이터 테이블의 참조로 사용하세요
가져오기 단계:
// add "dt ="
dt = open( ...);
이후의 작업 단계:
// replace:
// Data Table("mytable") << command (...)
// with
dt << command( ...)
JMP의 향후 버전에서는 사용자가 이러한 함정에 빠지는 것을 자동으로 방지하는 Workflow Builder가 있기를 바랍니다. 예를 들어,
- 데이터 테이블이 생성되면 Worklow Builder는 데이터 테이블을 참조하는 데 적합한 변수 이름을 요청할 수 있습니다.
- Workflow Builder의 버튼:
데이터 테이블 참조를 테이블 이름으로 바꾸기 -> 변수로 데이터 테이블 참조 바꾸기
옵션 4b를 기반으로, 문제를 자동으로 해결하기 위한 게시물이 위시리스트에 있습니다.
Action Recorder가 간단한 변수 이름을 참조로 사용하도록 허용