剛開始學習JSL,使用JMP16
嘗試編寫一個腳本來建立包含所選行的子集資料表,選擇標準由列(7)中的數值定義。
以下腳本的主幹來自「表格」標籤下執行的「子集」。
Data Table( "Subset of 200 kinome all excel" ) <<
Subset(
Linked,
selected rows only(0),
row selection (select where (as column(7) >0.3) );
Selected columns only(0),
);
上述腳本的選擇不起作用。 子集表與原始表相同。
我錯過了什麼?
謝謝
我根本不會使用這種方法,並且它在我的計算機上不起作用(仍然是子集中的所有行,並且沒有拋出錯誤/訊息):
Names default to here(1);
dt=open("$SAMPLE_DATA\Big Class.jmp");
Data Table( dt ) << Subset(
Linked,
selected rows only( 1 ),
row selection( select where( As Column( 2 ) > 13 ) ),
Selected columns only( 0 ),
);
原因是,在「子集」的文檔中我找不到任何像「行選擇」這樣的選項,只有
, [number, number, ...])>,
看:將資料表進行子集化 (jmp.com)
危險在於,未知參數不會引發錯誤,因此難以除錯。
此外,當在該子集語句中選擇行時,我不確定選擇是否在子集之前完成,因此對我來說它看起來不穩定。
我的解決方案是選擇子集語句之前的行,或如下所示透過明確選擇行號。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
Data Table( dt ) << Subset(
Linked,
rows( /* explicit rows [1,2,3] or conditionally: */ Loc( (dt:age << get values) > 16 ) ),
Selected columns only( 0 ),
);
之後編輯程式碼@喬治發現我的程式碼有錯誤。
你有幾個小問題。
- 需要開啟 Selected Rows Only()
selected rows only( 1 ),
- SelectWhere 需要成為一個獨立的語句
Data Table( "Subset of 200 kinome all excel" ) <<
row selection( select where( As Column( 7 ) > 0.3 ) );
這是完整的程式碼
Data Table( "Subset of 200 kinome all excel" ) <<
row selection( select where( As Column( 7 ) > 0.3 ) );
Data Table( "Subset of 200 kinome all excel" ) <<
Subset(
Linked,
selected rows only( 1 ),
Selected columns only( 0 )
);