從兩個 jmp 文件中添加/減去值你好,
@txnelson @pmroz
我需要幫助來使用 JSL 中的參考值偏移數據集
第一個表包含參考值

第二個表格包含條帶測試的測量值

我想從參考數據表中減去條帶 A 的平均值,然後添加到數據集中
例如 :
步驟1。電流條 A 的平均值 = (10+3)/2 = 6.5。 因此,400 - 6.5 = 393.5,其他條帶也是如此
第2步。 將 393.5 添加到條帶 A >> 393.2 + 10 = 403.2 的第二個數據表中,其他條帶同樣如此
最終表應具有以下值:

詳情請參閱附件。
謝謝您的幫助!
這是我試過的:
Names Default To Here( 1 );
dt = Current data table();
dtOffset = Open(Limits);
colList = dt << get column names(string);
For( i = 1, i <= N Items( colList ), i++,
theRow = dtOffset << get rows where( dtOffset:Tests == colList[i] );
show(i,nrows(therow));
If( N Rows( theRow ) == 1,
offset = dtOffset:Offset[theRow[1]];
For( k = 1, k <= N Rows( dt ), k++,
Column( dt, i )[k] = Column( dt, i )[k] + offset
);
);
);
腳本回复:從兩個 jmp 文件中添加/減去值謝謝吉姆:)
回复:從兩個 jmp 文件中添加/減去值我根據語法問題而不是邏輯問題對 Mark 的代碼進行了更改。我已經修改了代碼,我相信這會奏效
Names Default To Here( 1 );
dt1 = open( "Reference data.jmp" );
dt2 = open( "Data set.jmp" );
For( c = 1, c <= N Col( dt2 ) -1, c++,
theMatrix = [];
name = Column( dt2, c ) << Get Name;
For( r = 1, r <= N Rows( dt2 ), r++,
mean = dt1:Mean[dt1 << Get Rows Where( :Tests == name )];
measure = mean - Col Mean( If( dt2:Strips == dt2:Strips[r], Column( dt2, c ), . ) );
theMatrix = theMatrix || Column( dt2, c )[r] + measure;
);
Column( dt2, c ) << Set Values( theMatrix );
);
回复:從兩個 jmp 文件中添加/減去值嘿吉姆,
感謝您的糾正,但它似乎也沒有工作。

回复:從兩個 jmp 文件中添加/減去值你是一個放錯地方的“(”。這是一個更正的版本
Names Default To Here( 1 );
dt1 = Open( "Reference data.jmp" );
dt2 = Open( "Data set.jmp" );
For( c = 1, c <= N Col( dt2 ), c++,
name = Column( dt2, c ) << Get Name;
mean = dt1:Mean[dt1 << Get Rows Where( :Tests == name )];
measure = mean - Column( dt2, c ) << Get As Matrix;
Column( dt2, c ) << Set Values( measure );
);
回复:從兩個 jmp 文件中添加/減去值謝謝馬克。 代碼似乎不起作用

回复:從兩個 jmp 文件中添加/減去值請試試這個例子:
Names Default to Here( 1 );
dt1 = Open( "Reference data.jmp" );
dt2 = Open( "Data set.jmp" );
For( c = 1, c <= N Col( dt2 ), c++,
name = Column( dt2, c ) << Get Name;
mean = dt1:Mean[dt1 << Get Rows Where( :Tests == name )];
measure = mean - (Column dt2, c ) << Get As Matrix);
Column( dt2, c) << Set Values( measure );
);