我正在嘗試將腳本保存到我的數據表中,該腳本將重新創建我之前創建的表。 這是一個非常廣泛的插件,涉及打開/關閉幾個不同的表、創建匯總表、連接、更新,最後我需要的報告唯一數據是一個簡單的 2 列表。 我希望用戶能夠運行此加載項一次,如果他們不小心關閉了生成的表,他們將不必再次運行該加載項,因為將有一個腳本保存到可以重新創建的原始表上決賽桌和分析窗口。
希望這是有道理的!
我遇到的問題是最終表是在加載項腳本期間創建的許多表之一的摘要。 所以如果我使用<
sum<<DELETE scripts=""></DELETE>
這是我嘗試過但沒有用的一件事的例子。 dt 是我想將此腳本保存到的原始表。 sum 是我想在腳本中重新創建的表。
這甚至可能嗎???
這是一個簡單的腳本,顯示了執行此操作的一種方法
names default to here(1);
dt=open("$SAMPLE_DATA\big class.jmp");
dtSum = dt << Summary(
Group( :sex ),
Mean( :height ),
Freq( "None" ),
Weight( "None" ),
link to original data table(0)
);
Eval(
Parse(
Eval Insert( "\[dt << New Table Script("Summary Table Script", ^dtSum << get script^)]\" )
)
);
我只想添加代碼以將匯總表另存為另一個腳本,然後在您的主腳本中讓它運行重新創建匯總表的表腳本。
我的腳本的結果表基本上是 2 列:“位置”和“N 行”。 此表是在長加載項期間創建的表的摘要,而不是主表中任何列的摘要。 我無法使用任何使用當前表中的數據(例如摘要、堆棧等)創建表的腳本。 我需要以某種方式將結果表中的確切值保存到可以保存到主表中的腳本中。 是這樣的:
New Table( "Positions of'n-1 base'",
Add Rows( 32 ),
New Column( "Position",
Numeric,
"Nominal",
Format( "Best", 10 ),
Set Values(
[1, 2, 3, 6, 8, 9, 11, 16, 18, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32,
34, 35, 36, 37, 38, 39, 40, 41, 46, 48, 63, 65, 68]
)
),
New Column( "N Rows",
Numeric,
"Continuous",
Format( "Fixed Dec", 20, 0 ),
Set Values(
[13, 52, 65, 52, 65, 65, 65, 52, 52, 65, 52, 31, 28, 23, 13, 21, 14, 17,
9, 5, 4, 56, 1, 4, 5, 3, 55, 65, 65, 52, 13, 13]
)
)
)
但我不知道如何在我的腳本中做到這一點。 我不知道如何獲取此腳本,或將其保存到主表中。
我的計劃是在結果表首次打開時立即獲取腳本並將其保存到我的主表上的新表腳本中,這樣如果結果表關閉,它可以使用主表腳本重新創建。
這更有意義嗎?
你好@aallman ,
我對什麼有點困惑確切地您正在嘗試這樣做,但這聽起來確實與我之前做過的事情有些相似,我需要在其中堆疊源數據表,然後將輸出數據表製表,但不想在時重新編寫所有內容的腳本我將一些新數據連接到源數據表。
這是我在源 dt 中編寫 Stack 腳本的一些示例代碼。
Data Table( "Analysis" ) << Stack(
columns(
:X1,
:X2,
:X3,
:X4,
:X5,
:X6
),
Source Label Column( "Test Apparatus" ),
Stacked Data Column( "Data" )
);
Current Data Table() << Set Name( "Data Stack" ) <<
New Script(
"Fit Y by X of Data by Source",
Oneway(
Y( :Data ),
X( :Source ),
Means( 1 ),
Mean Diamonds( 1 ),
By( :Test Apparatus )
)
);
Data Table( "Data Stack" ) << New Column( "Date-Time",
"Ordinal",
Formula( :Date + :Time ),
Format( "m/d/y h:m:s" )
);
Data Table( "Data Stack" ) << Group Scripts(
"Run these after stacking",
{"Tabulate by Lot (run after stacking)",
"Tabulate by Apparatus (run after stacking)"}
);
Data Table( "Data Stack" ) << Move Script Group(
"Run these after stacking",
to last
);它將腳本轉移到新堆疊的數據表中。 我還將標題為“堆疊後運行這些”的分組腳本保存到主 dt,這些腳本也被轉移到新堆疊的數據表中。
我想您可能能夠以類似的方式解決您的問題。
祝你好運!,
DS