如何完成內存陣列中循環表的串聯,然後一次生成數據表?我使用“ 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”以計算“ weight”-“ height”
2。根據以下要求生成新表,並將它們拼接到第一個生成的新表中:
每個新表單都有三列:“名稱”,“步驟”和“級別”。新表中的行數是在第一步中獲得的每個名稱的“測試”值
“ step”列是從“ height”開始的數據,向下每行增加1,直至“ weight”行
“級別”列:將這些行從小到大平均分為10個段。每段的行數可能會有所不同。
3。將桌子一個接一個地拼接到桌子上。

如何完成內存陣列中循環表的串聯,然後一次生成數據表?
謝謝專家!
回复:如何完成內存陣列中循環表的串聯,然後一次生成數據表?我在下面的修改無需將代碼修改為僅使用內存變量和矩陣的步驟,而是利用了數據表的“私有”選項。 它允許創建一個不可顯示的數據表。因此,消除了創建顯示它們所需的對象的所有開銷。 我的代碼將處理時間至少減少了一半。
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);
在腳本指南中查找有關“專用”選項的信息
回复:如何完成內存陣列中循環表的串聯,然後一次生成數據表?私人的,
謝謝吉姆!