<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
あるデータテーブルから別のデータテーブルの「同じ名前」の列に列のプロパティをコピーするJSLスクリプトを持っている人はいますか?
このエラー メッセージは、新しい数式の列に、同じテーブルに存在しない 1 つ以上の列が含まれていることを意味します。 式の値を計算するために必要なすべての列が新しいテーブルにあることを確認しますか?
やあ、
この比較的古い投稿を見つけて、実行中のスクリプトに解決策を適用しようとしましたが、デバッガーに次のエラー メッセージが表示されます。
「式には、このテーブルに再マップすることができない別のテーブルの列またはテーブル変数への参照があります」
私の状況は、単一の列のプロパティのみをコピーしようとしているという点で、もう少し単純です
colProps = Column( dt, "Response Predictor" ) << Get Column Properties;
Column( dtparms, "Formula" ) << Add Column Properties( colProps );
私が間違っていることは何か分かりますか?
ヨハン
ご協力いただきありがとうございます。 それはトリックをしました! 私の新しいテーブルは常に「マスター」のサブセットであり、「try」ステートメントはこの問題を解決します。
ルー
「簡単な修正」: ループの 2 行目を内側に配置します。試す()新しいテーブルで列が欠落している場合のエラーを回避します (ここでは列の順序は重要ではありません)。
Try( Column( nt, colNames[i] ) << Add Column Properties( colProps ) );
ご協力ありがとうございました。 2 つのテーブルを繰り返し処理しようとしましたが、正しいコマンドがありませんでした。
2 つのテーブルに同じ列が同じ順序である限り、これは機能するようです。 これは正しいです?
ルー
ルー、
以下は、列名が同じであると仮定して、あるテーブルから別のテーブルに列のプロパティをコピーする方法を示しています。
dt = Open( "$SAMPLE_DATA\Tiretread.jmp" );
colNames = dt << Get Column Names( String );
nt = New Table( "New Tires",
New Column( "ABRASION", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "MODULUS", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "ELONG", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "HARDNESS", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "SILICA", Numeric, Continuous, ),
New Column( "SILANE", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "SULFUR", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "Pred Formula ABRASION", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "Pred Formula MODULUS", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "Pred Formula ELONG", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "Pred Formula HARDNESS", Numeric, Continuous, Format( "Best", 10 ) )
);
For( i = 1, i <= N Cols( dt ), i++,
colProps = Column( dt, colNames ) << Get Column Properties;
Column( nt, colNames ) << Add Column Properties( colProps );
);