如果/然後編寫腳本嗨,小組,我希望有人可以提供幫助!
我正在尋找一個編碼來幫助一些if / then過濾。
在附加的數據表中,有多個具有多個SampleID的批號,具有不同的“風味”。
目標是這樣的:
如果LOT#是第一個實例,那麼它將被選中。如果下一行是相同的,它將跳過它,並繼續跳過,直到它看到一個新的LOT#。
將選擇下一個LOT#的新第一個實例。並繼續。
然後,我將這些選定的行子集化為新的數據表。
我希望有人知道這是否可行。JMP可以做任何事情,所以我確定它是,我只是不知道如何。
非常感謝!
Re:If / Then腳本 @kwmcm ,
也許這樣的事情
dt = Current Data Table();
dt << Sort(By(:LOT#),Order(Ascending),Replace Table(1));
// Get Lot #
LotNums = dt:LOT# << Get Values;
// Get Unique Lot #
UniqueLotNums = Associative Array(LotNums) << Get Keys;
// Define List and new column values
SaveList = [];
// Find first occurence
for(i = 1, i <= N Items(UniqueLotNums), i++,
SR = dt << Select Where(:LOT# == UniqueLotNums[i]) << Get Selected Rows;
dt << Clear Select ;
SaveList = SaveList || SR[1];
);
// New Column
NewCol = As List(J(N Rows(dt),1,"0"));
NewCol[SaveList,0] = LotNums[SaveList];
dt << New Column("test",character,nominal,<< Set values(NewCol));Re:If / Then腳本是!這正是我想要的!
謝謝!
Re:If / Then腳本如果我理解你的問題,如果你的地段全部在一起,那麼這段代碼就可以了
Names Default To Here( 1 );
dt = Current Data Table();
dt << select where( :name( "LOT#" )[Row()] != Lag( :name( "LOT#" )[Row()] ) );
dtNew = dt << subset( selected columns( 0 ), selected rows( 1 ) );
Re:If / Then腳本首先需要按LOT#排序,但你有。所以代碼是:
dt = Current Data Table();
dt << (select where( :LOT# != Lag( LOT# ) ));
dt << subset( selected rows( 1 ), selected columns only( 0 ) );
滯後函數查看上一次觀察的值。