从两个 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 );
);