如何基於列值對數據表進行子集你好!我有一個很大的JMP文件,其中包含許多(> 75個產品批次)的穩定性測試結果。我想創建一個腳本,以基於列值(即批號)對測試數據的行進行子集設置,而僅包括文件中的某些測試結果列。 我對JMP和JMP腳本非常陌生,但是我設法整理了以下腳本:
Data Table( "Stability Trending" ) <<
Subset(
Output Table( "Data Subset - Lot 12345" ),
Copy formula( 0 ),
Selected Rows( 0 ),
Rows(
[1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325,
1326, 1327, 1328, 1329]
),
columns(
:Protocol No.,
:Lot No.,
:Final Fill Configuration,
:Name( "Storage Temperature (°C)" ),
:Time Point,
:Time Interval,
:Sterility Result,
:Name( "Test 1 Result" ),
:Name( "Test 2 Result" ),
:pH Result,
:Name( "Test 3 Result" ),
:Name( "Test 4 Result" )
)
)
現在,腳本正在根據發現特定批次數據的行號選擇行。這不是最佳方法,因為隨著穩定性研究的修改,有時會在表中插入行。我將如何基於“批號”修改上面的腳本以將“批號12345”的子集行修改為列而不是行號?我正在使用JMP 15(以防萬一)。
分析工具數據表腳本編寫回复:如何基於列值對數據表進行子集也許這個例子對您有用,BR
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
dt_lst = dt << Subset(
By( :lot_id ),
All rows,
columns( :wafer, :Wafer ID in lot ID, :SITE, :NPN1, :PNP1, :PNP2, :NPN2, :PNP3 )
);
Wait( 1 );
For( i = 1, i <= N Items( dt_lst ), i++,
Close( dt_lst[i], nosave );
wait(0.2);
);
回复:如何基於列值對數據表進行子集我建議使用“選擇位置”功能(位於“行”->“行選擇”下)。 與此類似的東西應該起作用:
Data Table( "Stability Trending" ) << Row Selection(
Select where( :Lot No. == "Lot 12345" ),
Dialog( Edit( Equal( Source Column( :Screen Size ) ) ), Keep dialog open( 0 ) )
);
Subset( (Selected Rows), Output Table Name( "Subset-Lot 12345" ) );
回复:如何基於列值對數據表進行子集輸入了錯誤(在您的示例中,忘記了用我的列名“ Lot No.”替換我的列名之一):
Data Table( "Stability Trending" ) << Row Selection(
Select where( :Lot No. == "Lot 12345" ),
Dialog( Edit( Equal( Source Column( :Lot No. ) ) ), Keep dialog open( 0 ) )
);
Subset( (Selected Rows), Output Table Name( "Subset-Lot 12345" ) );
回复:如何基於列值對數據表進行子集謝謝大家的建議。這是我最終要做的事情:
dt = Data Table( "Stability Trending" );
LN={"Lot 12345"};
dt<<SELECT where=""></SELECT>結果數據表為我提供了我一直在尋找的輸出-僅包含感興趣批號的行以及我指定的列中的測試結果。