連想配列をテーブル変数として作成し、保存された値を列の式で使用することは可能ですか?
進行中の分析の一環として、関連する変数をいくつか編集したいと考えています。これらの変数は、列の数式でマッチ関数のように使用されます。
例えば:
- テーブル変数カウントを作成し、値を["a" => 10, "b" => 3, "c" => 1]に設定します。
- カウントは、 :counts[:col]のような列式によって参照されます。ここで、:colは「a」、「b」、または「c」という値を持つ文字列の列です。
これは可能ですか? JMP 18.2.1を使用しています。
これはあなたが尋ねたことを実行すると思います:
New Table( "Untitled",
Add Rows( 3 ),
New Table Variable( "abc", "[\!"a\!"=>1, \!"b\!"=>2, \!"c\!"=>4]" ),
New Column( "Column 1",
Numeric,
"Nominal",
Format( "Best", 9 ),
Formula(
c_abc = As Constant( Eval( Parse( :abc ) ) );
c_abc["c"];
),
Set Selected
)
)
テーブル変数は単なるテキストなので、解析と評価が行われます。AsConstant関数を使用すると、列全体の評価は一度だけ解析/評価されるため、それほど非効率になることはありません。
代わりに、連想配列の各要素ごとに個別のテーブル変数を用意することもできます。編集は簡単かもしれませんが、連想配列のような独立した名前空間は作成されません。
列名をそのまま使用する場合は、カスタム列プロパティを使用するという方法もあります。ただし、検索や編集が難しくなる場合があります。テキストのみのテーブル変数とは異なり、カスタム列プロパティには式も保持できます。
dt=New Table( "Untitled",
New Column( "Column 1",
Set Property( "xxxxx", ["a"=>42,"adfasdfasdf"=>77] )
)
);
(dt:column1<
<GETPROPERTY></GETPROPERTY>
<BR />
Craigeは、これを実現するための良いオプションを提供してくれました。テーブル変数にもっと複雑なデータ型を導入したいという希望リストの項目です。テーブル変数に、単なるテキストや数値ではなく、もっと複雑なデータ型を使用しましょう。
@Craige_Hales さん、ありがとうございます。あなたの解決策はうまくいきました。
@jthi さん、ありがとうございます。この提案に賛成票を投じました。