차트/분석을 위해 기존 스크립트를 수동으로 실행하지 않고 저널에 차트 및 분석 데이터를 전송하기 위해 어떻게 스크립트를 작성합니까?안녕,
JMP에서 제품 테스트 데이터를 분석하는 데 사용하는 스크립트가 많이 있습니다.
스크립트는 일반적으로 테스트 데이터 파일에서 여러 열을 호출합니다.
각 테스트 실행에는 ID로 태그가 지정되며 새 테스트 실행 데이터를 JMP로 가져오기 위해 이 ID만 변경됩니다. 데이터 분석에 사용되는 스크립트는 동일하게 유지됩니다.
내 분석을 공유하기 위해 (현재) 수동으로 차트 및 분석 데이터(중앙값 및 std-dev 등)가 포함된 PPT 슬라이드 팩을 만듭니다.
JMP 저널로 이동하고 싶습니다.
다른 분석 스크립트를 자동으로 실행하거나 실행하지 않고 JMP 저널에 차트와 분석 데이터를 전송하는 스크립트를 사용할 수 있는지 궁금합니다. 이것이 가능하다면 그러한 저널을 구성하기 위한 예제 스크립트에 대한 도움을 받을 수 있습니까?
감사해요.
자동화 및 스크립팅윈도우Re: 차트/분석을 위해 기존 스크립트를 수동으로 실행하지 않고 저널에 차트 및 분석 데이터를 전송하기 위해 어떻게 스크립트를 작성합니까?@ian_jmp -작동하지 않는 것을 추적하기 위해 제안한 코드를 분해했습니다. for 루프의 줄에 문제가 있는 것 같습니다.
thisWindow = postWindowList[w];
내 경우에는 로그에 보고합니다(간단한 스크립트를 실행하여 차트를 그릴 때).
"part012 - Graph Builder"
에 없는 첫 번째 차트 항목의 경우
preWindowList
그럼 그냥 실행
Window(thisWindow) << Journal
라는 창을 넣지 않습니다.
"part012 - Graph Builder"
저널 파일로. 이름이 문제인가 "part012 - Graph Builder" 자체로 인해 이 차트가 저널에 전송되지 않습니까?
Re: 차트/분석을 위해 기존 스크립트를 수동으로 실행하지 않고 저널에 차트 및 분석 데이터를 전송하기 위해 어떻게 스크립트를 작성합니까?@ian_jmp , 다음 방법을 시도하면 for 루프(마지막에)에 주석을 달지 않는 한 열려 있는 차트 창(로그에 있음) 목록이 표시되지 않습니다.
또한 저널 파일이 생성되지 않습니다. 내가 어디에서 실수하고 있습니까?
함수(getOpenWindowNames.jsl)를 정의하고 실행합니다.
Names Default To Here(1);
// Returns a list containing the names of all the currently open windows in a session
namesOfOpenWindows =
Function({}, {DefaultLocal},
openWindows = Window();
openWindowNames = {};
For(w=1, w<=NItems(openWindows), w++, InsertInto(OpenWindowNames, OpenWindows[w] << GetWindowTitle));
openWindowNames;
);그런 다음 다른 스크립트에서 위의 함수를 다음과 같이 호출합니다.
Names Default To Here(1);
//Clear Symbols();
include ("getOpenWindowNames.jsl");
// Which windows are open now?
preWindowList = namesOfOpenWindows();
// Open a table
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Find out what scripts are in the table
dts = dt << GetTableScriptNames;
// Run every script
for (s=1, s<=NItems(dts), s++, dt << runScript(dts[s]));
// Which windows are open now?
postWindowList = namesOfOpenWindows();
//// Journal the contents of each 'new' window
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Re: 차트/분석을 위해 기존 스크립트를 수동으로 실행하지 않고 저널에 차트 및 분석 데이터를 전송하기 위해 어떻게 스크립트를 작성합니까?@ian_jmp . 이제 몇 가지 테스트를 더 수행했습니다. 스크립트의 이 부분이 작동하지 않습니다.
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
스크립트에서 이 위의 모든 항목은 예상된 결과를 제공하지만 위의 for 루프 블록에 주석을 다는 경우에만 가능합니다.
또한 차트를 저널에 가져오지 않기 때문에 내가 잘못하지 않는 한 for look 위의 코드만 예상대로 작동하는 것 같습니다.
Re: 차트/분석을 위해 기존 스크립트를 수동으로 실행하지 않고 저널에 차트 및 분석 데이터를 전송하기 위해 어떻게 스크립트를 작성합니까?@ian_jmp . 다음과 같은 방식으로 스크립트를 사용하려고 합니다.
데이터 파일을 로드하고 다양한 차트를 그리는 스크립트를 작성했습니다.
partID = "part012"; // specifies part ID
DataTable = getDataTable4WfrID2(partID,partID); // loads test data table corresponding to the partID and names it the same as partID
include ("allGraphPlotter.jsl"); //plots all necessary charts위의 스크립트는 예상대로 작동합니다.
그런 다음 (위의 네 번째 줄에서) 포함하다 저널에 차트를 보내기 위한 스크립트는 아래와 같지만 작동하지 않습니다.
어디가 잘못되었나요(아마도 내 include 문 또는 함수 호출 예: output = nameOfOpenWindows() )?
NamesDefaultToHere(1);
// Returns a list containing the names of all the currently open windows in a session
namesOfOpenWindows =
Function({}, {DefaultLocal},
openWindows = Window();
openWindowNames = {};
For(w=1, w<=NItems(openWindows), w++, InsertInto(OpenWindowNames, OpenWindows[w] << GetWindowTitle));
openWindowNames;
);
// Which windows are open now?
preWindowList = namesOfOpenWindows();
// Open a table
//dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Find out what scripts are in the table
//dts = dt << GetTableScriptNames;
// Run every script
//for (s=1, s<=NItems(dts), s++, dt << runScript(dts[s]));
// Which windows are open now?
postWindowList = namesOfOpenWindows();
// Journal the contents of each 'new' window
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Re: 차트/분석을 위해 기존 스크립트를 수동으로 실행하지 않고 저널에 차트 및 분석 데이터를 전송하기 위해 어떻게 스크립트를 작성합니까?출력에서 특정 보고서를 선택하는 것은 매우 간단하지만 매우 구체적입니다.시작하려면 시간을 내어 스크립팅 가이드를 읽어보시기 바랍니다.그런 다음 정확한 보고서를 얻는 방법에 대한 특정 질문에 대한 답변을 문서로 제공하거나 커뮤니티에서 답변할 더 자세한 질문을 제공할 수 있습니다.
Re: 차트/분석을 위해 기존 스크립트를 수동으로 실행하지 않고 저널에 차트 및 분석 데이터를 전송하기 위해 어떻게 스크립트를 작성합니까?감사해요 @ian_jmp .
귀하의 스크립트는 매우 유용해 보입니다. 특히 저는 JMP(MATLAB에서 제공)를 비교적 처음 사용하기 때문에 더욱 그렇습니다.
그러나 나는 당신이 "i f 스크립트는 테이블에 저장되지 않습니다. ".
내 스크립트는 저장되며 새 테스트 데이터 분석을 위해 변경되지 않습니다(내 OP에서 언급한 대로).
또한 저널로 이동하려면 각 스크립트의 특정 차트와 일부 계산된 분석 데이터(예: 중앙값 및 std-dev, JMP도 계산하는 다른 매개변수 아님)만 필요합니다. JSL에서 이것을 달성하는 방법은 무엇입니까?
Re: 차트/분석을 위해 기존 스크립트를 수동으로 실행하지 않고 저널에 차트 및 분석 데이터를 전송하기 위해 어떻게 스크립트를 작성합니까?기존 스크립트를 수정하지 않으려면 이러한 접근 방식을 시도해 볼 수 있습니다. 스크립트가 테이블에 저장되지 않은 경우 JSL 'Include()' 함수를 살펴보십시오.
NamesDefaultToHere(1);
// Returns a list containing the names of all the currently open windows in a session
namesOfOpenWindows =
Function({}, {DefaultLocal},
openWindows = Window();
openWindowNames = {};
For(w=1, w<=NItems(openWindows), w++, InsertInto(OpenWindowNames, OpenWindows[w] << GetWindowTitle));
openWindowNames;
);
// Which windows are open now?
preWindowList = namesOfOpenWindows();
// Open a table
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Find out what scripts are in the table
dts = dt << GetTableScriptNames;
// Run every script
for (s=1, s<=NItems(dts), s++, dt << runScript(dts[s]));
// Which windows are open now?
postWindowList = namesOfOpenWindows();
// Journal the contents of each 'new' window
for(w=1, w<=NItems(postWindowList), w++,
thisWindow = postWindowList[w];
if (!Contains(preWindowList, thisWindow), Window(thisWindow) << Journal);
);
Re: 차트/분석을 위해 기존 스크립트를 수동으로 실행하지 않고 저널에 차트 및 분석 데이터를 전송하기 위해 어떻게 스크립트를 작성합니까?감사해요. 예, 이것은 제가 따를 수 있는 접근 방식을 알려줍니다.
단, 저널 생성을 위한 스크립트 내에는 데이터 파일 로딩 스크립트, 그래프 플로팅/분석 스크립트 등이 작성되어야 합니다.
내 경우에는 데이터를 로드하고 필요한 그래프를 플로팅하고 필요한 분석을 생성하는 별도의 스크립트가 이미 있습니다.
나는 거기에 방법 기존 스크립트 참조 저널 스크립트 내부에 다시 작성하지 않고 저널 스크립트 내에서?
Re: 차트/분석을 위해 기존 스크립트를 수동으로 실행하지 않고 저널에 차트 및 분석 데이터를 전송하기 위해 어떻게 스크립트를 작성합니까?'JMP 저널 스크립팅'에 대한 웹 검색은 더 많은 예를 제공하지만 올바른 방향을 제시할 수 있습니다.
Names default to here(1);
dt = Open("$SAMPLE_DATA\Big Class.jmp");
// New Journal with a couple headings
nw = New Window("My Journal", <<JOURNAL></JOURNAL>