데이터 테이블을 분할하고 계산을 수행하기 위한 일반/변수 스크립트를 만드는 방법은 무엇입니까?나는 일상적으로 동일한 데이터 테이블 조작 및 계산을 수행하며 스크립트를 사용하여 자동화하는 데 관심이 있습니다.
일반적인 단계는 다음과 같습니다.

- 테이블 분할("속성" 열로 "값" 열 분할) > 새 테이블 생성
- 새 열 생성(C) = 열 A + 열 B
- 새 열 생성(D) = 열 A / 열 C

그러나 모든 테이블에는 다른 수의 행과 다른 값이 있습니다.이러한 기능을 클릭하고 JMP에서 생성된 스크립트를 살펴보면 각 열의 행 수와 값이 하드 코딩되어 있습니다.모든 크기의 새 데이터 테이블에서 스크립트를 실행할 수 있도록 완전히 가변적으로 만들려면 어떻게 해야 합니까?
지금까지 다음과 같은 스크립트가 있지만 행 수를 묻는 메시지를 표시한 다음 빈 테이블을 생성합니다.문서를 찾는 데 어려움을 겪고 있으므로 도움을 주시면 감사하겠습니다!
New Table( "split table",
Add Rows(),
New Script(
"Source",
Data Table() <<
Split(
Split By( :attribute ),
Split( :value ),
Output Table( "split table" ),
Sort by Column Property ) ),
New Column( "date", Character( 1 ), "Nominal", Set Values( {""} ) ),
New Column( "A", Numeric, "Continuous", Format( "Best", 12 ), Set Values( {""} ) ),
New Column( "B", Numeric, "Continuous", Format( "Best", 12 ), Set Values( {""} ) ),
New Column( "C", Numeric, "Continuous", Format( "Best", 12 ), Formula( :Name( "A" ) + :Name( "B" ) ) ),
New Column( "D", Numeric, "Continuous", Format( "Percent", 12, 0 ), Formula( :Name( "A" ) / :Name( "C" ) ) ) )
Re: 데이터 테이블을 분할하고 계산을 수행하기 위한 일반/변수 스크립트는 어떻게 만듭니까?안녕 짐,
데이터 테이블에 대해 죄송합니다.제 컴퓨터에서는 잘 되는 것 같아서 간단히 재업로드 했습니다.
나는 당신의 스크립트를 시도했고 한 가지를 제외하고 작동합니다. "날짜", "A"및 "B"열을 만드는 것은 중복됩니다. 이러한 열은 테이블 분할 기능에 의해 새 테이블로 이월되기 때문입니다.따라서 스크립트는 더욱 간단해지고 완벽하게 작동합니다.
Names Default To Here( 1 );
// Create a pointer variable to be able to
// reference the current active data table
dt = Current Data Table();
// Create the split data table
dt2 = dt << Split(
Split By( :attribute ),
Split( :value ),
Output Table( "split table" ),
Sort by Column Property
);
// Add new columns to the split data table
dt2 << New Column( "C",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( :Name( "A" ) + :Name( "B" ) )
);
dt2 << New Column( "D",
Numeric,
"Continuous",
Format( "Percent", 12, 0 ),
Formula( :Name( "A" ) / :Name( "C" ) )
);
매우 감사합니다!
Re: 데이터 테이블을 분할하고 계산을 수행하기 위한 일반/변수 스크립트는 어떻게 만듭니까?1. 첨부된 데이터 테이블이 손상되었습니다.텍스트 편집기를 사용하여 열었고 데이터를 삭제했다는 메시지가 있습니다.
2. 귀하의 질문 텍스트에서 귀하의 스크립트 구조가 귀하가 원하는 것을 수행해야 한다고 생각하는 방법을 이해한다고 생각하지만 실제로는 빈 데이터 테이블을 생성합니다....보고한대로.
3. 스크립트의 시작으로 원하는 내용은 다음과 같습니다.
Names Default To Here( 1 );
// Create a pointer variable to be able to reference
// the current active data table
dt = Current Data Table();
// Creat the split data table
dt2 = dt << Split(
Split By( :attribute ),
Split( :value ),
Output Table( "split table" ),
Sort by Column Property
);
// Add the new columns to the split data table
dt2 << New Column( "date", Character( 1 ), "Nominal", Set Values( {""} ) );
dt2 << New Column( "A", Numeric, "Continuous", Format( "Best", 12 ), Set Values( {""} ) );
dt2 << New Column( "B", Numeric, "Continuous", Format( "Best", 12 ), Set Values( {""} ) );
dt2 << New Column( "C",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( :Name( "A" ) + :Name( "B" ) )
);
dt2 << New Column( "D",
Numeric,
"Continuous",
Format( "Percent", 12, 0 ),
Formula( :Name( "A" ) / :Name( "C" ) )
);