1 つのテーブルから既存のテーブルに列データを追加するやあ、
ある出力テーブル (「出力」と呼ばれる) から既存のテーブル (「スタンモアとラム」と呼ばれる) に列データを追加しようとしていますが、結合コマンドを使用すると空の新しい出力テーブルが作成されます。 私のコードは次のとおりです。
output = New Table( "Output",
AddRows( 1 ),
New Column( "Y (coronal) mm", Numeric, Continuous ),
New Column( "X (sagittal) mm", Numeric, Continuous )
);
:"Y (coronal) mm" << addRows( 1 );
:"X (sagittal) mm" << addRows( 1 );
:"Y (coronal) mm"[1] = ymax;
:"X (sagittal) mm"[1] = xmax;
dt2 = Open( "Stanmore and Lam.jmp" );
dt2 << Join(
With( Data Table( output ) ),
By Matching Columns( :"Y (coronal) mm" = :"Y (coronal) mm", :"X (sagittal) mm" = :"X (sagittal) mm" )
);
あるテーブルから別のテーブルに手動でデータを入力せずに、特定の列の行の値を既存の列 (両方のテーブルの列と行の数が異なる) に単純に追加する方法はありますか? ありがとう!
ノア
Re: あるテーブルの列データを既存のテーブルに追加する上記で提案されたコードに次を追加することで、参照を設定できました。
toBeConcat = dt2 << Join(
With( Data Table( output ) ),
"Stanmore and Lam",
Update,
By Matching Columns(
:Name( "Y (coronal) mm" ) = :Name( "Y (coronal) mm" ),
:Name( "X (sagittal) mm" ) = :Name( "X (sagittal) mm" )
)
);
dt2 << Concatenate( toBeConcat, append to first table );
これにより、1) 出力の形式がスタンモアとラムのテーブルの形式に合うように更新され、2) 新しい出力データ テーブルを作成せずに、その出力が元のテーブルに連結されます。 これで、コードは必要なことを正確に実行します。 助けてくれてどうもありがとう!
Re: あるテーブルの列データを既存のテーブルに追加する「UPDATE」オプションに関する私のコメントはそれを処理します。 追加するだけ
アップデート、
あなたの結合に、それはあなたが望むものを処理します。
Re: あるテーブルの列データを既存のテーブルに追加する早速のお返事ありがとうございます! この構文は、必要な値を新しいテーブルに入力する場合に、はるかにうまく機能します。 これでもまったく新しいテーブルが生成されるので、「Stan and Lanmore」テーブルに連結できるように参照を設定する方法はありますか? 再度、感謝します!
ノア
Re: あるテーブルの列データを既存のテーブルに追加するこれは、構文的に適切にするために、スクリプトを作り直したものです。 あなたの変数 xmax と ymax が何であるか、またデータテーブル "Stanmore and Lam" が含まれているものを含めていないので、私はあなたの論理に話すことができません
output = New Table( "Output",
AddRows( 1 ),
New Column( "Y (coronal) mm", Numeric, Continuous ),
New Column( "X (sagittal) mm", Numeric, Continuous )
);
// You don't add rows to columns, you add rows to data tables. But since you have allready added
// a row to the new data table, you don't need to add a second row
//:"Y (coronal) mm" << addRows( 1 );
//:"X (sagittal) mm" << addRows( 1 );
// The proper form for what you are trying to do is:
// :Name("complex name")
//:"Y (coronal) mm"[1] = ymax;
//:"X (sagittal) mm"[1] = xmax;
:Name("Y (coronal) mm")[1] = ymax;
:Name("X (sagittal) mm")[1] = xmax;
dt2 = Open( "Stanmore and Lam.jmp" );
dt2 << Join(
With( Data Table( output ) ),
// You may want to use the "UPDATE" option to copy the matching rows from the joining table to the
// initial table
// Update,
// The proper naming structure has been replaced here too
By Matching Columns( :Name("Y (coronal) mm") = :Name("Y (coronal) mm") , :Name("X (sagittal) mm") = :Name("X (sagittal) mm") )
);