私は、多くの列の2つの測定値間のデルタを見つけるためのスクリプトを作成し始めています。
列名にダッシュが含まれていると、列の数式を作成できません。
引用符を削除するparseコマンドは、ダッシュをマイナスオペランドに変更します。マイナスオペランドは、私が達成しようとしていることを台無しにします。
エラーログ:
予期しない「_92MHz_test_data」。 おそらく、欠落している「;」があります。また "、"。
これがスクリプトです(列の名前にオペランドがない場合に機能します。
例えば、
dt =現在のデータテーブル();
Col_Name = "diff"; // column(5)-Column(300)
Col_Name1_char = char(列名(5)); //"DWK112079-01_92MHz_test_dataのビン""
Col_Name2_char = char(column name(300));//"DWK112079-01_90MHz_test_dataのビン""
Col1_Name =(concat( ":"、(Col_Name1_char))); // ":bin of DWK112079-01_92MHz_test_data";
Col2_Name =((concat( ":"、Col_Name2_char))); // ":bin of DWK112079-01_90MHz_test_data";
Formula_I =((concat(col1_Name、 "-"、Col2_Name))); //数式を作成します
a = Expr(New Column(X、formula(Z))); //Diffという名前の新しい列
b = replace(name expr(a)、Expr(X)、Col_Name、Expr(Z)、parse(Formula_I)); // Colnamesの名前に「-」が含まれていると、エラーが発生します
eval(b);
//ノート:
show(Forumula_I、parse(Formula_I));
//注:Formula_I = ":bin of DWK112079-01_92MHz_test_data-:bin of DWK112079-01_new_updated_test_data";
//注Parse(formula_I)=:bin of DWK112079-1;これは私が望むものではありません
列名の中央にある「-」は、JMPによって減算として解釈されています。したがって、用語全体が列名であることをJMPに示す必要があります。これを行う最も簡単な方法は、の命名構造を使用することです。
":列名" n
以下は、変更を加えたスクリプトの作り直しです。
names default to here(1);
dt = Current Data Table();
Col_Name = "diff"; // column(5) - Column(300)
Col_Name1_char = Char( Column Name( 5 ) ); // "bin of DWK112079-01_92MHz_test_data""
Col_Name2_char = Char( Column Name( 300 ) );// "bin of DWK112079-01_90MHz_test_data""
Col1_Name = (Concat( ":\!"", (Col_Name1_char), "\!"n" )); //":bin of DWK112079-01_92MHz_test_data";
Col2_Name = ((Concat( ":\!"", Col_Name2_char , "\!"n" ))); // ":bin of DWK112079-01_90MHz_test_data";
Formula_I = ((Concat( col1_Name, " - ", Col2_Name ))); //Make the formula expression
a = Expr(
New Column( X, formula( Z ) )
); // New column with name Diff
b = Substitute( Name Expr( a ), Expr( X ), Col_Name, Expr( Z ), Parse( Formula_I ) ); // This has error when Colnames has "-" in the name
Eval( b );
//Note:
Show( Forumula_I, Parse( Formula_I ) );
//Note : Formula_I = ":bin of DWK112079-01_92MHz_test_data - :bin of DWK112079-01_new_updated_test_data";
//Note Parse(formula_I) = :bin of DWK112079 - 1; This is not what I want