名前に別の列の文字列が必要な列を検索する「Freq」という列の値を使用して別の列を見つけようとしています。無効な行というエラーが発生します。
探している列は利用可能です。列 Freq は数値です。これが問題でしょうか?
たとえば、列 Freq の行の値が 200 の場合、 IDynatTsense__200__65 の値を検索します。
コード:
HashFreqval =列( "Freq" );
IDyn =列( "IDynatTsense__" ||HashFreqval[]|| "__65" );
エラー:

基本的なデータ分析とモデリングRe: 名前に別の列の文字列が必要な列を見つけるcolumn[]は現在のrow()の値を返します。
row()のデフォルト値は 0 です。行 1 の値にアクセスするには、 row()=1を介してポインターを調整するだけです。
New Table( "test",
Add Rows( 1 ),
New Column( "Freq",
Character,
Set Values( {"200"} )
),
New Column( "IDynatTsense__200__65",
Set Values( [20] )
)
);
HashFreqval = Column( "Freq" );
row()=1;
IDyn = Column( "IDynatTsense__"||HashFreqval[]|| "__65" );Re: 名前に別の列の文字列が必要な列を見つけるエラーは、hogi が書いた内容によって発生します。column()[] (column()[row()] と同じ) は、JMP ではデフォルトで 0 である現在の行の値を検索しますが、これは無効な行番号です (これについては、 「Iterate on Rows in a Table (jmp.com) 」で読むことができます)。
このコードをどのように利用していますか? おそらく、これは使用しているコード全体ではありませんか? 「Freq」から値を探していますが、どの行ですか? また、ループしていますか? IDynatTsense__200__65 (どの行?) から値を取得しようとしていますか、それとも参照だけですか?
Re: 名前に別の列の文字列が必要な列を見つける私の質問はあまり明確ではないかもしれません。簡単な例を添付します。
HashFreq 列の値に応じて、Idyn_ 200 _65 列または Idyn_ 400 _65 列のいずれかからデータを選択する必要があります。
そのデータを取得できたら、数式を使用してさらに計算することができます。
Names Default To Here( 1 );
dt1 = Open( "TestDataJunk.jmp" );
HashFreqval = Column( "HashFreq" );
IDyn = Column( "IDynatTsense__"||HashFreqval[]|| "__65" );
dt1 << New Column( "NewVal", Numeric, Continuous, Formula( IDyn[] ));
ご協力いただきありがとうございます!
Re: 名前に別の列の文字列が必要な列を見つけるデータがもっと複雑で数式が必要ない場合は、For Each Rowを使用するのがよいでしょう。
Names Default To Here(1);
dt = Open("$DOWNLOADS/TestDataJunk.jmp");
dt << New Column("NewVal2", Numeric, Continuous);
For Each Row(dt,
val = Column(dt, "HashFreq")[Row()];
val_col = Eval Insert("Idyn_^val^_65");
Column(dt, "NewVal2")[Row()] = Column(dt, val_col)[Row()];
);