매주 수동으로 업데이트하는 Excel 표가 있습니다. 다음으로, JMP에서 이 표를 열고 2열부터 모든 열을 스택(Stack)합니다. 매주 업데이트할 때마다 원래 표에 열을 추가합니다. 최근 JMP 스크립팅 입문 수업을 들었는데, 매번 처음부터 다시 스택하는 대신 이 과정을 약간 자동화하려고 합니다.
스택을 수행하기 전 JMP에서 테이블이 어떻게 보이는지는 다음과 같습니다.

다음과 같은 스크립트를 사용하여 Excel 표를 JMP로 가져오는 방법을 알고 있습니다.
Open(
"Drive:\Folder\File.xlsx",
Worksheets( "Data" ), // etc.
하지만 제가 궁금한 점은 JMP 스크립트를 변경하여 2열부터 끝까지 쌓도록 하는 방법입니다.
JMP에서 수동 스택을 수행하고 소스 스크립트를 살펴본 결과 다음과 같은 결과가 나왔습니다.
Data Table( "Data" ) << Stack(
columns(
:Name( "8/23/2021" ),
:Name( "08/30/2021" ),
:Name( "09/06/2021" ),
:Name( "09/13/2021" ),
:Name( "09/20/2021" ) // etc.
),
Source Label Column( "Failure Group Name" ),
Stacked Data Column( "% Share, Week of" )
);
그리고 For( 함수의 프레임워크가 있어서 사용할 수 있습니다.
For( c = 2, i <= N Col(), c++,
//body//하지만 어떻게 조합해야 할지 잘 모르겠어요. Stack( 명령을 For( 명령 안에 넣는 건가요?
도움을 주실 수 있는 모든 분께 감사드립니다!
Stack 플랫폼을 사용하면 columns() 인수에서 열 목록을 사용할 수 있다고 생각합니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cols_to_stack = {"NPN1", "PNP1", "PNP2"};
dt_stacked = dt << Stack(
columns(cols_to_stack),
Source Label Column("Label"),
Stacked Data Column("Data"),
Drop All Other Columns(1)
);따라서 << Get Column Names(String)를 사용하여 Excel 파일에서 만든 데이터 테이블에서 가지고 있는 열 이름 목록을 가져온 다음 Remove From()으로 첫 번째 열을 삭제합니다.
Names Default To Here(1);
dt = Open(
"$SAMPLE_IMPORT_DATA/Team Results.xlsx",
Worksheets("Ungrouped Team Results"),
Worksheet Settings(Headers Start on Row(3), Data Starts on Row(4))
);
//all columns
col_names = dt << Get Column Names("String");
//drop first column
Remove From(col_names, 1);
//stack with remaining, won't work exactly like this with this example data, as data types aren't same
//dt_stacked = dt << Stack(...)도움말 / 스크립팅 색인을 참조하고 여기에서 사용된 다양한 기능을 검색하십시오.