메모리 배열에서 루핑 테이블의 연결을 완료 한 다음 데이터 테이블을 한 번 생성하는 방법은 무엇입니까?"Big Class.jmp"를 사용하여 작업 요구 사항을 설명합니다.
완료 코드를 따르고 있지만 속도가 느립니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "test", formula( :weight - :height ) );
dt << run formulas;
Wait( 0 );
For( i = 1, i <= N Row( dt ), i++,
d1 = New Table( "a",
Add Rows( dt[i, 6] + 1 ),
New Column( "name", Character, Nominal ),
New Column( "step", Continuous ),
New Column( "level", Continuous )
);
d1[1 :: N Row( d1 ), 1] = dt[i, 1];
Column( "step" ) << Formula( dt[i, 4] + (Row() - 1) );
d1 << run formulas;
Column( "step" ) << deleteFormula;
Column( "level" ) << Formula( If( Row() == dt[i, 6] + 1, 10, Ceiling( (Row()) / ((dt[i, 6] + 1) / 9.9) ) ) );
d1 << run formulas;
Column( "level" ) << deleteFormula;
If( i == 1,
d2 = Current Data Table(),
Current Data Table( dt );
d2 << Concatenate( Data Table( d1 ), Append to first table );
d1 << Close Window;
);
);
1. "중량"- "높이"를 계산하기 위해 새 열 "test"를 작성하십시오.
2. 다음 요구 사항에 따라 새 테이블을 생성하고 처음 생성 된 새 테이블에이를 결합하십시오.
각 새 양식에는 "name", "step"및 "level"의 세 열이 있습니다. 새 테이블의 행 수는 첫 번째 단계에서 얻은 각 이름의 "test"값입니다.
"단계"열은 "높이"로 시작하여 각 행마다 1 씩 증가하고 "무게"행까지 증가하는 데이터입니다.
"레벨"열 :이 행을 작은 것에서 큰 것까지 10 개의 세그먼트로 균등하게 나눕니다. 단락 당 줄 수는 다를 수 있습니다.
삼. 테이블을 하나씩 테이블에 연결하십시오.

메모리 배열에서 루핑 테이블의 연결을 완료 한 다음 데이터 테이블을 한 번 생성하는 방법은 무엇입니까?
고마워 전문가!
다시 : 메모리 배열에서 루핑 테이블의 연결을 완료 한 다음 데이터 테이블을 한 번 생성하는 방법은 무엇입니까?아래의 수정은 메모리 변수와 행렬 만 사용하는 단계로 코드를 수정하지 않고 데이터 테이블에 대한 "개인"옵션을 활용합니다. 표시 할 수없는 데이터 테이블을 작성할 수 있습니다. 따라서 객체를 표시하는 데 필요한 객체를 만들 때 발생하는 모든 오버 헤드가 제거됩니다. 내 코드는 처리 시간을 절반 이상 줄였습니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "test", formula( :weight - :height ) );
dt << run formulas;
Wait( 0 );
For( i = 1, i <= N Row( dt ), i++,
d1 = New Table( "a",
private,
Add Rows( dt[i, 6] + 1 ),
New Column( "name", Character, Nominal ),
New Column( "step", Continuous ),
New Column( "level", Continuous )
);
d1[1 :: N Row( d1 ), 1] = dt[i, 1];
Column( "step" ) << Formula( dt[i, 4] + (Row() - 1) );
d1 << run formulas;
Column( "step" ) << deleteFormula;
Column( "level" ) << Formula(
If( Row() == dt[i, 6] + 1,
10,
Ceiling( (Row()) / ((dt[i, 6] + 1) / 9.9) )
)
);
d1 << run formulas;
Column( "level" ) << deleteFormula;
If( i == 1,
d2 = d1,
Current Data Table( dt );
d2 << Concatenate( Data Table( d1 ), Append to first table );
Close(d1, nosave);
);
);
dtFinal = d2 << subset( selected rows( 0 ), selected columns( 0 ) );<BR />Close(d2,nosave);
개인 옵션에 대한 자세한 내용은 스크립팅 안내서를 참조하십시오
다시 : 메모리 배열에서 루핑 테이블의 연결을 완료 한 다음 데이터 테이블을 한 번 생성하는 방법은 무엇입니까?은밀한,
Jim 감사합니다!