2 つの別個のデータ テーブルを含む操作はどのように機能しますか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />例えば分割したいときデータテーブル 1 の列 1 の各値にデータテーブル 2 の列 2 の各値。 その際に問題があるようですが、「スコープ付きデータ テーブル アクセスには、 'dtbinsum:column' 、 dtbinsum:column/*### のアクセスまたは評価にデータ テーブル列または変数が必要です{1}」というエラーが表示されるのはなぜなのか疑問に思っています。 */( ) /*###*/"
私のスクリプトの一部は次のようになります。
// スクリプトの開始
dt = 現在のデータテーブル();
dtbinsum = dt << 概要(
グループ( :データファイル, :ロットID, :SBIN ),
Freq( "なし" ),
重量(「なし」)、
統計列名の形式( "column" )、
元のデータテーブルへのリンク( 0 )
);
dtbinsum<< Select Where( dtbinsum:sbin != 1 );
dtbinsum<< 行を削除します。
dtbinsum2 = dt << 概要(
グループ( :ロットID )、
N(:SBIN)、
Freq( "なし" ),
重量(「なし」)
);
収量 = {};
for(i=0, i
yield_temp = (dtbinsum:column(Nrows ))/(dtbinsum2:column(N(SBIN) ));
に挿入します(yield,yield_temp);
);
表示(収量);
//スクリプトの終わり
表示されるエラーは言うまでもなく、私の方法がおそらく最も効率的な方法ではないことはわかっていますが、これに対する解決策を持っている人はいますか?
Re: 2 つの別個のデータ テーブルを含む操作はどのように機能しますか?これは、次のエラーが表示されるまでに到達した距離です。
名前が解決されていません: " , Name(" ")/*###*/ のアクセスまたは評価中
コード:
dt1 =データ表( 「メインテーブル」 ) ;
dt2 =データ表( 「REFテーブル分割」 ) ;
コル= dt1 <<列名を取得する(弦) ;
ために(私= 2 、私<= N列( dt1 ) 、私++、
1 列=コル[私】 ;
ヴァルス= (桁( dt1 、 1 列) <<値の取得)
(桁( dt2 、 1 列) <<値の取得) ;
dt1 <<新しい列( 1 列、数値、価値観(ヴァルス)) ;
) ;
スクリプトはループ内を 1 回転することに成功し、正しい値を含む 1 つの列を作成します。
Re: 2 つの別個のデータ テーブルを含む操作はどのように機能しますか?for ループで機能するように数式を変更する方法について提案をいただけますか?
スクリプトと同じことを行う必要がありますが、すべての列について、新しいテーブルの名前は取得した列のヘッダー + にする必要があります。商
dt1 = データテーブル (「メインテーブル」);
dt2 = データテーブル (「参照テーブル」);
コル= dt <<列名を取得する(弦) ;
for ( i = 2, i <= N 列 (myTable), i++,
// メインテーブルの列への参照のさまざまなバージョンを試してみましたが、動作させることができません
ヴァルス= (桁( dt1 、列(i) ) <<値の取得)
(桁( dt2 、列(i ) ) <<値の取得) ;
dt1 <<新しい列( 列、数値、継続的、価値観(ヴァルス)) ;
);
BR
アンダース
Re: 2 つの別個のデータ テーブルを含む操作はどのように機能しますか?ありがとう、イアン。要素ごとの操作についてご指摘いただいたので、非常に理にかなっています。
Re: 2 つの別個のデータ テーブルを含む操作はどのように機能しますか?(桁( dt1 、 "分子" ) <<値の取得)指定された列の値を行ベクトル (この例では v1 と同じ) に入れます。 (桁( dt2 、 "分母" ) <<値の取得)他の列 (実際には v2 と同じ行ベクトル) に対して同じことを行います。 そうして :\演算子は要素ごとの除算を要求します。つまり、最初のベクトルの最初の要素を 2 番目のベクトルの最初の要素で除算して、結果ベクトルの最初の要素を取得します (他の要素についても同様)。
「ヘルプ > ブック > スクリプト ガイド」の第 7 章の「行列」セクションをご覧ください。
Re: 2 つの別個のデータ テーブルを含む操作はどのように機能しますか?ありがとう、イアン、それはうまくいきますが、特にこの行について聞いてもいいですか?
ヴァルス= (桁( dt1 、 "分子" ) <<値の取得)
(桁( dt2 、 "分母" ) <<値の取得) ;
^
私が JSL を理解する方法は、列を識別するのに役立つコロンです。このように使用すると、どのように機能するのでしょうか?
Re: 2 つの別個のデータ テーブルを含む操作はどのように機能しますか?次のようなものかもしれません:
名前デフォルトここへ( 1 ) ;
// いくつかのテーブルを作成します
v1 = J ( 10 、 1 、ランダム整数( 1 、 5 )) ;
v2 = J ( 10 、 1 、ランダム整数( 1 、 5 )) ;
dt1 =新しいテーブル( "表1" 、新しい列( "分子" 、数値、序数、価値観( v1 ))) ;
dt2 =新しいテーブル( 「表2」 、新しい列( "分母" 、数値、序数、価値観( v2 ))) ;
// 表 1 に商列を追加します
待って( 3 ) ;
ヴァルス= (桁( dt1 、 "分子" ) <<値の取得)
(桁( dt2 、 "分母" ) <<値の取得) ;
dt1 <<新しい列( "商" 、数値、継続的、価値観(ヴァルス)) ;